
[英]Sharing an object for binding (specifically an NSDocument) between various views / nibs
[英]Sharing NSArrayController Between Nibs
我正在构建一个基于Core Data的类似iTunes的应用程序,该应用程序在主窗口中具有NSTableView
,并允许用户在表视图中选择项目并执行“获取信息”,例如在iTunes中。 当前,我正在使用单项获取信息窗口,当用户在主窗口(位于MainMenu.xib
)选择单个项并按下Cmd-I时,将显示该窗口。 这将打开单项获取信息窗口(在SingleItemGetInfo.xib
)。
通过绑定到NSArrayController
填充主窗口中的表视图。 如果将NSArrayController
放入SingleItemGetInfo.xib
文件中,我知道那将是NSArrayController
的另一个实例。
那么,将单项获取信息窗口中的字段绑定到用户在主窗口的表格视图中所做的选择的正确方法是什么?
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
当主视图和局部视图位于同一窗口中时,这几乎与工作方式相同。 主要区别在于您需要将详细信息xib中的阵列控制器selection
绑定到主阵列控制器的选择。
这取决于您如何组织应用程序以及实现方式。 如果两个视图都由同一对象运行,则只需将主阵列控制器设置为连接到该控制器的插座( @property IBOutlet NSArrayController *masterArrayController;
)。 然后,您可以在detail xib中将细节阵列控制器的选择绑定到主阵列控制器的选择。
如果每个视图都有其自己的控制器,您还可以考虑将托管对象从主视图传递到详细信息视图。 然后,您可以绑定到xib文件中托管对象的每个属性(即,绑定到文件的所有者self.detailObject.fullName)。 如果您通过引用,我认为所有更改都将直接返回到托管对象上下文中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.