我有一个包含项目列表的主窗口的应用程序,并且可以从该窗口打开不确定数量的窗口。这些窗口中的每一个都可以包含模型对象的多个实例,这些实例列在抽屉中。
我通过使(主窗口)项目列表扩展 NSDocument 并且每个其他窗口扩展 NSWindowController 来开始我的项目。但是从功能上讲,主窗口每个蓝月亮都会使用一次,尽管它是用户启动应用程序时应该弹出的窗口,并且扩展 NSWindowController 的窗口是用户广泛使用的窗口,也是最终持有的窗口我的“文件”。
正因为如此,我现在在实现诸如新建、打开和保存等方法时遇到了问题——我发现自己编写了很多手册上说应该由超类实现的代码。
因为我正处于十字路口,所以我想知道我应该如何实现我的应用程序。我应该将我的主窗口重新分解为一个扩展 NSWindowController 的类并从包含主菜单的 xib 启动它,还是应该保持原样并覆盖 newDocument、openDocument 等以获得所需的功能?
只是为了帮助心理形象,我的应用程序像 MSN 一样工作 - 我有一个主列表,上面有几个项目(MSN 上的联系人列表),当我双击一个项目时我打开一个窗口(你打开一个聊天到用户)。我的应用程序更进一步,为每个“聊天”窗口保留了模型对象的多个实例,并且每个实例都可以通过抽屉中的表格访问。