2012-01-04 22 views
2

基于视图的NSTableView的与单个列结合。每个“单元”包含几个NSTextFields,一个NSImageView和一个NSButton,所有这些都绑定到Table Cell View的objectValue的各种属性。 NSTableView的内容绑定到NSArrayController的ArrangeObjects,它处于Entity模式并绑定到相关的NSManagedObjectContext。NSButton参数在基于视图的NSTableView的

的NSTextFields和NSImageView像预期的那样。但是,由于某种原因,NSButton没有。它总是被禁用。我已经将其参数绑定到objectValue的属性及其目标文件的所有者。实验表明它是参数绑定而不是引起麻烦的目标绑定。印象是参数值必须是零,所以导致按钮被禁用。但它确实不行,因为其他绑定(NSTextFields等)工作正常。

我用button参数/目标绑定在基于细胞的表视图很多次都没有问题。所以我想也许有一些基于视图的表格视图的特点,这意味着这种绑定不起作用。但Apple的TableViewPlayground示例使用此方法(在HUD面板中)没有问题。我的绑定以完全相同的方式设置。我可以看到唯一的区别是Apple的例子使用类模式数组控制器,而我的是实体模式。但我不能相信这是问题(或至少我非常希望这不是因为这将是一个严重的弱点),

回答

7

我花了几个小时,在此完全相同的问题。在我的情况下,NSTableView的委托也没有设置为文件所有者。一旦设定好,所有东西都开始正常运作。

+0

不幸的是,这并不使我的情况下,任何的区别。 – jfewtr 2012-06-26 00:58:54

+1

这个答案适合我,谢谢。为了jfewtr:确保你考虑选择(你需要像'的方法 - (空)buttonAction:(ID)发送;',它的工作除了你可以尝试添加':选择在后' IB – 2012-11-13 13:05:11

+3

已确认 - 如果tableView的委托为零,则不会发送按钮操作。 – 2014-09-03 11:33:16

相关问题