将数据从NSTableView获取到NSViewController

时间:2010-01-12 06:09:27

标签: objective-c cocoa core-data nstableview

我希望有一个'详细信息视图',当用户双击一行时,我只是不确定如何将数据提供给NSViewController,因此它可以显示内容。我正在使用CoreData,我想不出办法做到这一点。

2 个答案:

答案 0 :(得分:1)

可可绑定。
Apple在网上有很棒的tutorial about creating Master-Detail interface 如果您使用Xcode 3.2,屏幕截图有点过时,但它并没有那么不同。

NSViewController具有representedObject属性,允许您绑定到当前显示的模型对象。

修改 好。我的答案并不那么好,因为这只是事实的一半 虽然它显示了如何在详细信息视图中绑定控件,但它没有提供有关如何将数组控制器的选择绑定到视图控制器的representedObject的解决方案。 我会对这个问题的仅绑定解决方案感兴趣。

答案 1 :(得分:1)

您需要执行以下几个步骤:

  1. 确保表视图由NSArrayController驱动,并且表视图的控制器(窗口控制器或视图控制器或其他)具有NSArrayController绑定的值一个ivar,以便你访问它。

  2. 在您的表格控制器中,将双击操作设置为控制器中的方法,并将目标设置为控制器。

  3. 在双击方法中,您可以通过-selectedObjects请求NSArrayController来访问该行,并且生成的NSArray中只应包含一个元素。

  4. 然后,您可以在此处创建详细视图或其他任何您想要使用它的内容。您可以创建工作表并显示它,打开模态窗口等。