我有一个非基于文档的核心数据应用程序.有一个NSTreeController
管理单个显示的对象集合NSOutlineView
作为源列表.它们是常见的东西:标题,文件夹,智能文件夹等.
这些容器对象中的每一个都有一组contents
对象.我有三个独立的视图控制器,以各种方式显示这些对象(一个NSTableView
和两个自定义图形视图,如果你真的想知道)但这些只是相同数据的三个不同的演示.它们应始终显示相同的对象,共享相同的选择等.
我也使用NSViewController
s 的层次结构来管理我的观点.(如果我当时知道Cathy Shive的优秀KTUIKit
,我会用它,但是我的视觉控制器非常相似 - 并且非常受她的启发)
就像现在一样,我NSTreeController
在源视图列表视图的视图控制器中占有一席之地.我NSArrayController
在每个子视图控制器中都有一个绑定到NSTreeController
通道的一些过于复杂的键路径.
那么,在我看来,需要改变的是:
在NSTreeController
需要迁出大纲视图的控制器.
NSArrayController
每个内容视图都可以绑定到一个单独的视图而不是三个单独的视图.虽然我不太确定这一点.
什么我遇到的困难是找出哪里,这些东西应该活.我很难决定哪些对象(如果有的话)真正"拥有"各种控制器.父视图控制器是否拥有它?窗户控制器?由于这是应用程序级数据,我是否应该让App Delegate拥有这些数据?(我可以想象一个使用可能想要打开多个窗口的情况,虽然目前不支持)StackOverflow蜂巢思维的想法是什么?