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

Posted

技术标签:

【中文标题】核心数据、NSTableColumn 绑定和自定义 NSCell【英文标题】:Core Data, NSTableColumn bindings and custom NSCell 【发布时间】:2009-10-24 18:47:39 【问题描述】:

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

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

我的印象是,当表格视图想要绘制特定项目时,我的 NSCell 子类会收到 setObjectValue: 消息,但这并没有发生。但这甚至行不通,因为NSManagedObjects 不符合Copying 协议。

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

任何见解将不胜感激。

【问题讨论】:

与其他问题非常相似:***.com/questions/409424/…. 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于核心数据、NSTableColumn 绑定和自定义 NSCell的主要内容,如果未能解决你的问题,请参考以下文章

使用转换后的值对 NSTableColumn 进行排序

核心数据和自定义属性类型

JSF 生命周期和自定义组件

需要将 foreach 和自定义属性绑定到同一个 div

模板template绑定事件和自定义组件Component二级联动

jQuery on() 方法 为选定已存在元素和未来元素绑定标准事件和自定义事件