NStableColumn和Cocoa绑定中的自定义NSCell



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

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

在接口生成器中,当您将NSTextFieldCell或NSImageCell设置为列的数据单元格时,您可以将单元格的"value"属性绑定到ArrayController。当您将NSCell设置为NSTableColumn的数据单元格时,Interface Builder中没有可用的"Value"绑定。因此,您可以推断绑定应该以编程方式完成。

当您尝试以编程方式将"value"属性绑定到NSArrayController的"arrangedObjects.property"时,会出现一个错误:"此类不符合键值编码"。实际上,当您调用exposeBindings:method时,没有暴露的"value"属性,也没有"value"特性。

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

最简单的方法是将自定义单元格作为NSTextFieldCell的子类。

要解决此问题,请创建NSTableColumn的子类并重新实现dataCellForRow:方法。最后,在XIB中,将列类型更改为新的子类。

最新更新