没错,这可能不是基于文档的应用程序,因为它们默认在新窗口中打开文档。
要像这样布局窗口,会有一个NSSplitView
包含 3 个窗格的窗口。每个窗格都可以选择包含从 加载的视图NSViewController
,这可以帮助保持代码模块化,但这取决于您尝试执行的操作是否合适。
左窗格将是一个NSOutlineView
(NSTableView
子类),中间是一个NSTableView
,但我不确定如何创建右侧视图(可能有很多 customNSView
和其他东西WebView
)
该弹出选项窗口可能是一个NSPopover
(其中包含一个NSViewController
),但它仅与 OS X 10.7 兼容,因此也可以完全自定义以实现向后兼容性和更轻松的定制。
另请注意,这是您给出的一个相当复杂的示例,其中包含许多可能比看起来更难创建的自定义控件:
这只是开始。那里有很多非常好的设计,都是定制的,从头开始。
有时设计 Mac 应用程序可能很困难。AppKit 已经很老了(从 NEXT 时代回来),并且有很多遗留问题。另一方面,iOS 上的 UIKit 相当不错——Apple 显然从他们的过去中吸取了教训,并让事情变得更好。
我几乎没有触及这一切背后的控制器和模型。有很多不同的方法可以做到这一点。对于持久性,您可以使用 CoreData、sqlite、NSKeyedArchived
等等。Brent Simmons(另一位 RSS 阅读器 NetNewsWire 的前开发人员)为此写了一些有趣的博客文章:
http: //inessential.com/2010/02/26/on_switching_away_from_core_data
http://inessential.com/2011/09/22/core_data_revisited
您设计模型和控制器的方式实际上取决于具体问题。Cocoa 确实迫使你坚持使用 MVC——如果你不这样做,事情肯定会变得一团糟。
希望对大家有帮助!我真的也只是在学习自己。