gpt4 book ai didi

Mac OS X 上的 Cocoa 应用程序架构

转载 作者:行者123 更新时间:2023-12-03 16:02:26 24 4
gpt4 key购买 nike

在长期从事 iPhone 工作后,我将重新开始在 Mac 上进行 Cocoa 开发。我之前在 Mac 上使用 Cocoa 的经历只是一些很小的工具。我正在寻求构建一些严肃的东西。

看看现代 Cocoa 应用程序,例如 iPhoto(或 Mail 或 Things 或......),许多应用程序都使用单窗口、基于源列表的方法。我正在尽我所能地思考这一点,因为它似乎提供了良好的体验。不过,我遇到了一点麻烦。我认为它应该是这样的,但我想知道其他人是如何做到的,以及真正最好的方法是什么:

  • 应用程序的起点是一个 AppDelegate 对象,启动后,它从 nib 创建一个 Window[Controller?],并设置其数据(例如来自 CoreData)

  • WindowController 加载一个窗口,该窗口本质上只有一个 NSSplitView。

  • 分割 View 的左侧有一个 NSTableView 或 NSOutlineView,它们被设置为具有 SourceList 样式。

  • 右侧显示应用程序的主要内容,具体取决于选择了表格 View 的哪一项。

我会假设某个地方(哪里?)有 NSViewController 管理将出现在右侧的每个不同 View (想想 iPhoto 如何拥有所有照片、事件、面孔、地点等,我想它们都可以出现在不同的 Nib ...这是正确的吗?)。

这些 View Controller 可能绑定(bind)到左侧的源列表。它是如何工作的(源列表可能由 NSViewController 的 NSArrayController 支持?)。

无论如何,这些是我的想法,我完全偏离基地还是......?我浏览了一下网络,发现了这篇文章here ,我看过一些苹果源代码,但我似乎无法理解它。欢迎任何指导。

最佳答案

如果您要将某些 View 替换为其他 View ,则将 View 分解为单独的 Nib 主要是有好处的,因为您可以延迟加载它们。是的,在现代应用程序中,您可以使用 NSViewController,或者可能使用 KTUIKit 中的 KTViewController (参见the posts she co-wrote about NSViewController)

但是,不要只是投入源列表的怀抱。单窗口界面对于简单的应用程序来说可能很有用,但当你有很多事情发生时,它很快就会变得笨拙,因为通过将它们分成单独的窗口可能会更好地服务它们; iTunes 和 Xcode 都提供了许多这方面的示例(尤其是后者,因为您可以在 SWI 和 MWI 之间切换)。

您需要考虑多窗口界面还是单窗口界面更适合您的应用。没有一个答案可以适用于所有应用程序;这完全取决于您的应用程序、您想要它做什么以及您想要它的外观 - 您(加上团队的其他成员,如果有的话)是唯一可以回答这个问题的人。您可能需要进行一些纸质原型(prototype)设计,以便在每个方向上进行快速实验,以便您至少可以将两个 UI 的虚假示例进行对比。

关于Mac OS X 上的 Cocoa 应用程序架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com