tableCellView中的NSButton:如何使用基于视图的NSTableView / NSArrayController的“动作调用”

时间:2012-11-25 17:25:36

标签: cocoa core-data interface-builder nstableview nsarraycontroller

对于基于视图的NSTableView / NSarrayController:如何使用tableCellView内的NSButton中的“动作调用”来更改实体的属性?

我有以下设置:

  • “基于视图”的NSTableview,其中包含一列。
  • NSarrayController,它使用“实体模式”并绑定到核心数据实体。

Picture of the demo application

我想使用按钮中的动作调用来更新实体。例如,将“bool”属性设置为true。

如果我只是使用“模型键路径”并将其设置为objectValue.escaped,则该按钮被禁用。

2 个答案:

答案 0 :(得分:1)

我能够通过在按钮本身(NSTableCellView中的视图类)上设置动作,然后将NSTableView的委托设置为实现选择器的类来实现此功能。它会按预期工作。

答案 1 :(得分:0)

澄清我的问题:

如果我的数据源有另一个客户端,例如通过web-service连接,我想触发一个事件。我会使用entity-attribute来通知客户端。因此我在tableCellView中添加了一个按钮。

我开始使用NSTableView和连接到核心数据实体的NSArrayController作为对象控制器。文本字段,图像,复选框和弹出按钮在绑定到控件后立即工作。但是我找不到绑定“按钮”的可行解决方案。(我试图将控件,表格,单元格视图和按钮子类化,但没有成功。)

最后我切换到了action / delegate方法。使用方法 rowForView: itemAtRow:表示对象:,可以修改实体的属性。

我对这个不太优雅的解决方案(outlineView / detached code)感到不满意。如果有一个使用arrayControl的解决方案,请告诉我。