Aus*_*tin 6 cocoa objective-c cocoa-bindings nscollectionview
我有一个在我的每个CollectionView项目中使用的视图.我从我的视图中有一个关于CollectionViewItem的IBOutlet,我已经将它连接到Interface Builder中.我想在我的视图代码中访问来自representObject(它是一个Core Data对象)的值.这是我正在尝试做的一个示例 - 访问representObject的序列值:
在.h文件中:
IBOutlet NSCollectionViewItem *item; // Connected in IB
Run Code Online (Sandbox Code Playgroud)
在.m文件中
NSString *seq = [[item representedObject] valueForKey:@"seq"];
NSLog(@"Seq: %@", seq); // returns Seq: (null)
Run Code Online (Sandbox Code Playgroud)
我知道seq是填充的,因为我使用representObject.seq键路径将它绑定到IB中CollectionViewItem视图中的标签,并且可以正常工作.
知道为什么当我尝试在视图的代码中访问seq的值时它返回null吗?
NSCollectionViewItem 很可能不会将 IBOutlet 连接从项目视图复制到原型 NSCollectionViewItem。因此,item为零,因此seq也将为零。
访问 NSCollectionViewItem 实例的典型模式是绑定到原型。你提到你做了这件事并且它有效。这仅仅是因为这是典型的、受支持的方法。
如果您确实需要以绑定无法提供的方式直接连接到该项目,则可能需要手动设置。一种方法是覆盖 NSCollectionViewItem -copyWithZone:,调用 super,然后手动建立连接。
| 归档时间: |
|
| 查看次数: |
4048 次 |
| 最近记录: |