单窗口、非基于文档的应用程序中的 Nib 文件(和代码)组织

Posted

技术标签:

【中文标题】单窗口、非基于文档的应用程序中的 Nib 文件(和代码)组织【英文标题】:Nib file (and code) organization in a one-window, non-document-based app 【发布时间】:2010-09-25 18:58:05 【问题描述】:

*** 的好人,

我正处于构建非基于文档的 Cocoa 应用程序的早期阶段。我的目标是类似于 iTunes 的窗口布局,具有左、中和右窗格。此类应用程序的 Xcode 模板包括一个名为 MainMenu.xib 的文件,其中包含主菜单和主应用程序窗口,支持逻辑包含在 MyApp_AppDelegate 类中。

我已经可以预见,继续沿着这条路线继续下去最终会导致一个非常庞大且杂乱无章的应用程序委托类。因此,我的蜘蛛侠感觉告诉我将主窗口的逻辑分解为它自己的 NSWindowController 子类(以及随附的 XIB 文件)。此外,将每个窗格拆分为自己的 NSViewController 子类是否正确?这似乎可以更好地分离我的关注点,但代价是更多的文件和一些额外的代码将所有东西连接在一起。

我能找到的最接近的建议是在 Apple 的 Interface Builder User Guide 中,但它并没有直接回答这个问题。但是,我想我的问题不是特别针对 nib 文件,而是关于高级应用程序组织。

【问题讨论】:

【参考方案1】:

对于任何想知道同样事情的人,this 和 this 和 this 几乎为我解决了问题。

显然 NSViewController 的东西相对较新,还没有很好的文档记录。

【讨论】:

以上是关于单窗口、非基于文档的应用程序中的 Nib 文件(和代码)组织的主要内容,如果未能解决你的问题,请参考以下文章

基于索引的非重叠滑动窗口

如何根据条件显示或不显示 NIB 创建的视图

使用 UIViewController 加载 nib 文件

非基于文档的应用程序 Cocoa 中的“另存为”

nib 本地化时 Cocoa 无法加载窗口 nib 文件

Swift 中的 NSWindowController。使用 Nib 进行子类化和初始化