我在长时间从事iPhone开发之后又开始进行Mac上的Cocoa开发。我的以前在Mac上使用Cocoa的经验仅限于一些小工具。我想要构建一些严肃的东西。
看着像iPhoto(或Mail或Things等)这样的现代Cocoa应用程序,许多应用程序都使用单窗口,源列表为基础的方法。我正在尽最大努力理解它,因为它似乎提供了良好的体验。然而,我有点困难。以下是我认为它应该是什么样子,但我想知道别人是如何做到的,什么才是真正的最佳方式:
应用程序的起点是一个AppDelegate对象,在启动后,从nib创建一个Window[Controller?],并设置其数据(来自CoreData)
WindowController加载一个窗口,该窗口本质上只有一个NSSplitView。
分裂视图的左侧有一个NSTableView或NSOutlineView,设置为SourceList样式。
右侧根据表格视图选择的项具有应用程序的主要内容。
我会假设某个地方(在哪里?)有NSViewControllers管理右侧将出现的各个视图(考虑iPhoto有所有照片、事件、面孔、地点等,我想它们都可以出现在不同的nib中…这是正确的吗?)。
那些视图控制器可能绑定到左侧的源列表..这是怎么做的(源列表由NSArrayController和NSViewControllers支持?)。
总之,这是我的想法,我完全错了还是...?我在网上找到了这篇文章here,以及查看了一些苹果源代码,但我似乎无法理解它。欢迎任何指导。
selectedRowIndexes
绑定到窗口所有者的一个属性上,它会负责为新选择的索引加载适当的视图控制器。更具体地说,我不清楚,因为我只制作过多窗口界面。 - Peter Hosey