我正在编写一个非常简单的 macOS 应用程序,我想在集合视图中显示一些图像。对于它们的显示方式,我不需要任何特殊行为。NSCollectionViewItem的文档说:
此类的默认实现支持创建显示单个图像或字符串的简单项目。
这就是我想要的。但是,我找不到有关如何创建默认值的任何信息NSCollectionViewItem
。
NSCollectionView的文档指出:
每个数据源对象都需要实现以下方法:
集合视图:numberOfItemsInSection:
集合视图:itemForRepresentedObjectAtIndexPath:
上面的第二种方法返回一个NSCollectionViewItem
. 从阅读示例中,我了解到NSCollectionViewItem
在这种情况下创建的传统方法是调用:
NSCollectionViewItem* newCollectionViewItem = [imageCollectionView makeItemWithIdentifier:<some identifier>
forIndexPath:indexPath];
问题是我不明白<some identifier>
应该是什么。我没有包含 an 的笔尖,NSCollectionViewItem
因为我没有对它进行子类化或以任何方式对其进行自定义。我尝试将以下内容添加到我的数据源中:
- (void)awakeFromNib
{
[imageCollectionView registerClass:[NSCollectionViewItem class]
forItemWithIdentifier:@"Image"];
}
imageCollectionView
问题在哪里NSCollectionView
。然后在我的- (NSCollectionViewItem *)collectionView:itemForRepresentedObjectAtIndexPath:
方法中,我调用:
NSCollectionViewItem* newCollectionViewItem = [imageCollectionView makeItemWithIdentifier:@"Image"
forIndexPath:indexPath];
但这会引发异常并将其打印到控制台:
2016-12-19 17:51:27.463 MyApp[28177:3926764] -[NSNib _initWithNibNamed:bundle:options:] 无法加载 nibName: NSCollectionViewItem 捆绑包(空)。
其次是堆栈跟踪。
那么我如何去创建和使用一个NSCollectionViewItem
没有子类化或以任何方式修改的?