プログラムでNSCollectionViewDataSource
を使用してNSCollectionView
を作成しようとしています。プログラムでデータソースを使用したNSCollectionViewの作成
コードは非常に簡単です:
self.collectionView = [[NSCollectionView alloc] init];
// Add collection view to self.view etc.
self.collectionView.dataSource = self;
[self.collectionView registerClass:[NSCollectionViewItem class] forItemWithIdentifier:@"test"]
self.collectionView.collectionViewLayout = gridLayout;
[self.collectionView reloadData]
これは、(私が明示的にcollectionViewLayout
プロパティを設定しない場合は、これら二つはどちらか呼び出されません)と呼ばれる取得次のメソッドにつながる:
- (NSInteger)numberOfSectionsInCollectionView:(NSCollectionView*)collectionView
- (NSInteger)collectionView:(NSCollectionView*)collectionView numberOfItemsInSection:(NSInteger)section
ただし、collectionView:itemForRepresentedObjectAtIndexPath:
は呼び出されません。最後のデータソースメソッドが呼び出されていることを確認するために何か必要なことはありますか?私は2つのカウント呼び出しが> 0を返すようにしました、それは問題ではありません。
gridLayoutから新しいレイアウトに変更してみてください(私はその名前を忘れています)。グリッドレイアウトは古いスタイルのレイアウトです。 – pickwick
'NSCollectionViewGridLayout'は新しいデータソースメソッドで10.11で利用できるので、動作するはずです。 'NSCollectionViewFlowLayout'に変更しようとしましたが、残念ながら' itemForRepresentedObjectAtIndexPath'は呼び出されませんでした。 – kevinlindkvist