我正在使用一个NSCollectionView
来显示各种对象。整个事情都很好,除了一件烦人的事情。我无法弄清楚如何访问用于表示集合中每个对象的视图上的各种控件。
这是设置:
NSCollectionView
我在 IB中拖入了我的视图。- 我做了一个自定义子类
NSCollectionViewItem
。映射我在 IB 中的课程。 - 我创建了一个自定义子类
NSBox
来充当集合中每个对象的视图。还在 IB 中映射了此类并将其连接到view
我的NSCollectionViewItem
子类的属性。 - 我在 IB 中进行了所有绑定以显示每个对象的正确信息。
风景:
生成的集合视图:
推理我的子类NSCollectionViewItem
基本上是集合中每个视图的控制器,我在我的控制器子类中的视图中引用了各种控件的出口:
@interface SourceCollectionViewItem : NSCollectionViewItem
@property (weak) IBOutlet NSTextField *nameTextField;
@property (weak) IBOutlet NSTextField *typeTextField;
@property (weak) IBOutlet RSLabelView *labelView;
@property (weak) IBOutlet NSButton *viewButton;
@end
当我检查调试器中的任何实例时SourceCollectionViewItem
,所有属性都显示为 nil,尽管我实际上可以在屏幕上看到它们并且所有内容都按应有的方式显示。
我的设置灵感来自 Apple 的示例应用IconCollection。
我显然错过了一些东西。什么?
编辑:我发现各种帖子都暗示了一个类似的问题: CocoaBuilder.com和这个关于 SO 的问题。
编辑:为了完整起见:这篇文章也涉及该主题,并根据已接受答案中提到的选项的组合提供解决方案。