从 NSTableView 获取数据到 NSViewController

Posted

技术标签:

【中文标题】从 NSTableView 获取数据到 NSViewController【英文标题】:Getting the data from a NSTableView to a NSViewController 【发布时间】:2010-01-12 06:09:26 【问题描述】:

当用户双击一行时,我希望有一个“详细信息视图”,我只是不确定如何将数据获取到 NSViewController,以便它可以显示内容。我正在使用 CoreData,但我想不出办法。

【问题讨论】:

【参考方案1】:

您需要在此处执行几个步骤:

    确保表格视图由 NSArrayController 驱动,并且您的表格视图控制器(窗口控制器或视图控制器或其他)将 NSArrayController 绑定到 ivar,以便你访问它。

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

    在双击方法中,您可以通过从NSArrayController 请求-selectedObjects 来访问该行,结果NSArray 中应该只有一个元素。

然后您可以从那里创建您的详细视图或您想要对其进行的任何其他操作。您可以创建工作表并显示它,打开模式窗口等。

【讨论】:

【参考方案2】:

可可绑定。 Apple 有一个很棒的在线 tutorial about creating Master-Detail interfaces。 如果您使用的是 Xcode 3.2,则屏幕截图有点过时,但并没有那么不同。

NSViewController 有一个representedObject 属性,它允许你绑定到你当前显示的模型对象。

编辑: 好的。我的回答不是很好,因为它只对了一半。 虽然它显示了如何在详细视图中绑定您的控件,但它没有提供有关如何将数组控制器的选择绑定到视图控制器的 representedObject 的解决方案。 我会对这个问题的纯绑定解决方案感兴趣。

【讨论】:

以上是关于从 NSTableView 获取数据到 NSViewController的主要内容,如果未能解决你的问题,请参考以下文章

遍历 NSTableview 或 NSArrayController 以获取数据

Xcode数组到NSTableView

从与核心数据链接的 NSTableView 中的选定行获取数据

基于视图的 NSTableView 中的 NSPopupButton

从 NSTableView 拖放到 Finder 的问题

如何通过 NSArrayController 从 Core Data 填充 NSTableView?