核心数据,NSTableColumn绑定和自定义NSCell

时间:2009-10-24 18:47:39

标签: cocoa core-data cocoa-bindings

我正在尝试使用能够正确绘制托管对象的自定义NSManagedObjectsNSTableView中显示NSCell数组。

就此而言,我的NSTableView的单个列绑定到arrangedObjects的{​​{1}}。我没有在对象上使用任何关键路径。

我的印象是,当表格视图想要绘制特定项目时,我的NSArrayController子类将收到NSCell消息,但这种情况不会发生。但由于setObjectValue:不符合NSManagedObjects协议,这甚至不起作用。

我怀疑这是一个常见的任务,必须有一些简单的方法来做到这一点,但我现在真的没有看到它。

任何见解都将受到赞赏。

2 个答案:

答案 0 :(得分:3)

您需要绑定到绑定对象的特定属性。如果你确实需要一个单元格来绘制整个值,那么你应该像{Martin}所说的那样绑定到objectID,但是不能在单元格的绘图代码中重新获取,而是可以使用-tableView:willDisplayCell:forTableColumn:row:委托方法将对象设置为数组控制器中单元的自定义属性的值,避免复制和提取。

答案 1 :(得分:0)

我设法通过将表列与托管对象模型的objectID密钥路径(符合NSCopying)绑定来使其工作。然后,单元格使用ID检索实际的NSManagedObject。它就像一个魅力!