我目前正在尝试使用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中,将列类型更改为新的子类。