2

我目前正在尝试使用 Cocoa Bindings 来使用 Cocoa Bindings 填充 NSTableView。我在使用自定义 NSCell 子类的某些列中遇到了一个主要问题。

我的 XIB 文件包含一个 NStableView 和一个 NSArrayController。

在接口 Builder 中,当您将 NSTextFieldCell 或 NSImageCell 设置为列的数据单元时,您可以将单元格的“值”属性绑定到 ArrayController。当您将 NSCell 设置为 NSTableColumn 的数据单元时,Interface Builder 中没有可用的“值”绑定。所以你可以推断出绑定应该以编程方式完成。

当您尝试以编程方式将“value”属性绑定到 NSArrayController 的“arrangedObjects.property”时,会出现错误提示:“此类不符合键值编码的键值”。实际上,当您调用exposeBindings: 方法时,没有公开“值”属性,也没有“值”属性。

您如何优雅地将 NSArrayController 绑定到具有自定义子类 NSCell 的 NSTableColumn ?

4

2 回答 2

0

为了解决这个问题,创建一个子类NSTableColumn并重新实现该dataCellForRow:方法。最后,在您的 XIB 中,将列类型更改为您的新子类。

于 2014-09-02T12:39:08.903 回答
0

最简单的做法是让您的自定义单元格成为 NSTextFieldCell 的子类。

于 2014-01-11T13:11:17.880 回答