gpt4 book ai didi

cocoa - 在 Nib 之间共享 NSArrayController

转载 作者:行者123 更新时间:2023-12-03 17:53:16 24 4
gpt4 key购买 nike

我正在构建一个基于核心数据的类似 iTunes 的应用程序,它在主窗口中有一个 NSTableView ,并允许用户在 TableView 中选择项目并执行“获取信息” “,就像在 iTunes 中一样。目前,我正在开发单项获取信息窗口,当用户在主窗口(位于 MainMenu.xib 中)中选择单个项目并按下 Cmd-I 时,该窗口就会显示。这将打开单项获取信息窗口(在 SingleItemGetInfo.xib 中)。

主窗口中的表格 View 是通过绑定(bind)到 NSArrayController 来填充的。如果我将 NSArrayController 放入 SingleItemGetInfo.xib 文件中,我知道这将是 NSArrayController 的不同实例。

那么,将单个项目获取信息窗口中的字段绑定(bind)到用户在主窗口的表格 View 中所做的选择的正确方法是什么?

MainMenu.xib's Array Controller bindings:
Managed Object Context: AppDelegate.self.managedObjectContext

MainMenu.xib's Table View bindings:
Content: Array Controller.arrangedObjects
Selection Indexes: Array Controller.selectionIndexes
Sort Descriptors: Array Controller.sortDescriptors

最佳答案

这与主视图和详细 View 位于同一窗口中时的工作方式基本相同。主要区别在于,您需要将详细信息 xib 中阵列 Controller 的选择绑定(bind)到主阵列 Controller 的选择。

这取决于您如何组织应用程序来完成此任务。如果两个 View 都由同一个对象运行,那么您只需将主阵列 Controller 设置为连接到 Controller 的 socket (@property IBOutlet NSArrayController *masterArrayController;)。然后在详细信息xib中,您可以将详细信息阵列 Controller 的选择绑定(bind)到主阵列 Controller 的选择。

如果每个 View 都有自己的 Controller ,您也可以考虑将托管对象从主视图传递到详细 View 。然后,您可以绑定(bind)到 xib 文件中托管对象的每个属性(即绑定(bind)到文件所有者 self.detailObject.fullName)。如果您传递引用,我认为所有更改都将立即返回到托管对象上下文中。

关于cocoa - 在 Nib 之间共享 NSArrayController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com