我正在尝试使用能够正确绘制托管对象的自定义 NSCell
在 NSTableView
中显示 NSManagedObjects
数组.
就此而言,我的 NSTableView
的单列绑定(bind)到 NSArrayController
的 arrangedObjects
。我没有在对象上使用任何关键路径。
我的印象是,当 TableView 想要绘制特定项目时,我的 NSCell
子类会收到 setObjectValue:
消息,但这并没有发生。但这根本行不通,因为 NSManagedObjects
不符合 Copying
协议(protocol)。
我怀疑这是一个常见的任务,并且一定有一些简单的方法来做到这一点,但我现在确实没有看到它。
如有任何见解,我们将不胜感激。
最佳答案
您需要绑定(bind)到绑定(bind)对象的特定属性。如果您确实需要一个单元格来绘制整个值,那么您应该绑定(bind)到 objectID
,正如 Martin 建议的那样,但您可以使用 - 而不是在单元格的绘制代码中重新获取tableView:willDisplayCell:forTableColumn:row:
委托(delegate)方法将对象设置为数组 Controller 中单元格的自定义属性的值,从而避免复制和获取。
关于cocoa - 核心数据、NSTableColumn 绑定(bind)和自定义 NSCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618740/