2016-02-07 6 views
1

Я создал подкласс NSCollectionView, который соответствует NSCollectionViewDataSource, NSCollectionViewDelegate, но он висит каждый раз - я получаю только вращающийся пляжный мяч.NSCollectionView (osx 10.11) зависает при запуске

public class SequenceCollectionView : NSCollectionView, NSCollectionViewDataSource, NSCollectionViewDelegate { 

    // MARK: Inits 

    public required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 
     commonInit() 
    } 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     commonInit() 
    } 

    func commonInit() { 
     self.dataSource = self 
     self.delegate = self 
    } 


    //MARK: Datasource 

    public func collectionView(collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int { 
     return 1 
    } 


    public func collectionView(collectionView: NSCollectionView, itemForRepresentedObjectAtIndexPath indexPath: NSIndexPath) -> NSCollectionViewItem { 

     if indexPath.item == 0 { 
      let item = NSCollectionViewItem(nibName: "ItemView", bundle: nil) 
     } 

     return NSCollectionViewItem() 
    } 
} 

Это, очевидно, какой-то цикл или цикл сохранения, но мне трудно отлаживать его.

enter image description here

ответ

2

Выясняется, что проблема лежит с дополнительным делегатом вызова

public func collectionView(collectionView: NSCollectionView, willDisplayItem item: NSCollectionViewItem, forRepresentedObjectAtIndexPath indexPath: NSIndexPath) { 
} 

Добавляя это к классу зафиксировал проблему.

0

Добавление к ответу Криса, то NSCollectionView будет висеть на прокрутке или изменении размера вид, если следующий необязательный метод делегата не перекрываться:

- (void)collectionView:(NSCollectionView *)collectionView didEndDisplayingItem:(NSCollectionViewItem *)item forRepresentedObjectAtIndexPath:(NSIndexPath *)indexPath {} 

 Смежные вопросы

  • Нет связанных вопросов^_^