我正在尝试使用能够正确绘制托管对象的自定义NSManagedObjects
在NSTableView
中显示NSCell
数组。
就此而言,我的NSTableView
的单个列绑定到arrangedObjects
的{{1}}。我没有在对象上使用任何关键路径。
我的印象是,当表格视图想要绘制特定项目时,我的NSArrayController
子类将收到NSCell
消息,但这种情况不会发生。但由于setObjectValue:
不符合NSManagedObjects
协议,这甚至不起作用。
我怀疑这是一个常见的任务,必须有一些简单的方法来做到这一点,但我现在真的没有看到它。
任何见解都将受到赞赏。
答案 0 :(得分:3)
您需要绑定到绑定对象的特定属性。如果你确实需要一个单元格来绘制整个值,那么你应该像{Martin}所说的那样绑定到objectID
,但是不能在单元格的绘图代码中重新获取,而是可以使用-tableView:willDisplayCell:forTableColumn:row:
委托方法将对象设置为数组控制器中单元的自定义属性的值,避免复制和提取。
答案 1 :(得分:0)
我设法通过将表列与托管对象模型的objectID
密钥路径(符合NSCopying
)绑定来使其工作。然后,单元格使用ID检索实际的NSManagedObject
。它就像一个魅力!