- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个在我的 CollectionView 的每个项目中使用的 View 。从我的 View 中,我有一个指向 CollectionViewItem 的 IBOutlet,并且已将其连接到 Interface Builder 中。我想在我的 View 代码中从 representedObject(这是一个核心数据对象)访问一个值。这是我正在尝试做的事情的一个例子——访问被表示对象的序列值:
在.h文件中:
IBOutlet NSCollectionViewItem *item; // Connected in IB
在.m文件中
NSString *seq = [[item representedObject] valueForKey:@"seq"];
NSLog(@"Seq: %@", seq); // returns Seq: (null)
我知道 seq 已填充,因为我使用 representedObject.seq 键路径将它绑定(bind)到 IB 中 CollectionViewItem View 中的标签,并且有效。
知道为什么当我尝试在 View 代码中访问 seq 的值时它返回 null 吗?
最佳答案
很可能 NSCollectionViewItem 没有将 IBOutlet 连接从它们的项目 View 复制到原型(prototype) NSCollectionViewItem。因此,item
为 nil,因此 seq
也将为 nil。
访问 NSCollectionViewItem 实例的典型模式是绑定(bind)到原型(prototype)。你提到你做了这个并且它有效。这仅仅是因为这是典型的、受支持的方式。
如果您确实需要以绑定(bind)无法提供的方式直接连接到项目,您可能必须手动设置它。一种方法是覆盖 NSCollectionViewItem 的 -copyWithZone:
,调用 super,然后手动建立连接。
关于objective-c - 如何从 NSCollectionViewItem 的 View 中获取 representedObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1123053/
简而言之:我将 NSTextField 绑定(bind)到文件所有者( View Controller )和 representedObject.firstName 的模型键路径,但编辑文本字段不会改
我已经阅读了一堆 Core Data 示例和 Apple 文档。经过一整天的工作,我已经走到了墙边。 我想要发生的就是在文本字段中输入一些文本,保存文件,再次打开它并查看其中的文本。 我制作了一个非常
当我预先将按钮添加到 NSCollectionViewItem 的 View 时,我可以在检查器中绑定(bind)它的操作: 这没有问题。 现在我想在 View 的 mouseDown: 中以编程方式
我有一个在我的 CollectionView 的每个项目中使用的 View 。从我的 View 中,我有一个指向 CollectionViewItem 的 IBOutlet,并且已将其连接到 Inte
我正在开发一个简单的 OS X Cocoa 应用程序,用户在其中填写表单,应用程序执行一些计算,这些计算会在其他字段中弹出。 我从 Xcode 6.3.2(适用于 Yosemite)上默认的基于文档的
我在尝试将以下代码升级到 Swift 3 时遇到了问题。 我该如何解决这个问题? @IBAction func Quit(_ sender: AnyObject) { NSApp
我是一名优秀的程序员,十分优秀!