基于视图的NSTableView,只有一列。每个'单元'包含几个NSTextFields,一个NSImageView和一个NSButton,所有这些都绑定到Table Cell View的objectValue的各种属性。 NSTableView的内容绑定到NSArrayController的arrangeObjects,它在Entity模式下并绑定到相关的NSManagedObjectContext。
NSTextFields和NSImageView的行为符合预期。但是,出于某种原因,NSButton没有。它总是被禁用。我已将其参数绑定到objectValue的属性,并将其目标绑定到File的所有者。实验表明它是参数绑定而不是引起麻烦的目标绑定。印象是参数值必须为nil,因此导致按钮被禁用。然而它真的不可能,因为其他绑定(NSTextFields等)工作正常。
我在基于单元格的表视图中多次使用了按钮参数/目标绑定而没有任何问题。所以我想也许基于视图的表视图有一些特征,这意味着这样的绑定不起作用。但Apple的TableViewPlayground示例使用这种方法(在HUD面板中)没有问题。我的绑定以完全相同的方式设置。我能看到的唯一区别是,Apple的示例使用了类模式阵列控制器,而我的是实体模式。但我无法相信这就是问题(或者至少我非常希望它不会是一个严重的弱点)。,
答案 0 :(得分:7)
我在这个完全相同的问题上花了几个小时。就我而言,NSTableView的委托也没有设置为文件的所有者。设置完成后,一切都开始正常运行。