【发布时间】:2023-03-25 02:54:01
【问题描述】:
在过去的几年里,我做了相当多的 iOS 开发工作,所以我对 iOS 架构和应用程序设计非常熟悉(一切都是 ViewController,您可以推送、弹出或粘贴到标签栏中)。我最近开始探索适当的 Mac 应用程序开发,感觉有点失落。我真的很想进行一次完整性检查,并可能就构建这样的应用程序的正确方法提供一些建议:
我想构建一个库风格的单窗口应用程序,它会在运行过程中产生额外的窗口,但不是完整的文档。主窗口的布局与 OS X Lion 的 Mail.app 非常相似,具有三宽拆分视图,其中包含:
- 来源列表,或高级主题选择
- 列表视图与第一个窗格中所选主题相关的项目
- 详细视图,显示中间窗格中所选对象的详细信息
就像我说的,就外观而言,它与 Mail.app 非常相似。
我的问题实际上是如何从 XCode 内部将所有这些粘合在一起。到目前为止,这是我的困惑所在:
默认项目生成一个带有主菜单和窗口的 NIB。我喜欢封装功能,所以我应该为这个窗口制作一个窗口控制器并以某种方式将它连接到 Interface Builder 中,还是特定于窗口的功能属于其他地方?
如果可能,我希望我的三个窗格中的每一个都是单独的视图控制器。我创建了三个 NSViewController 子类(XCode 自动生成的 NIB),并添加(到主菜单/窗口 NIB)视图控制器对象并指定每个类,将每个
view属性连接到三个Custom View通用 NSView 对象之一我掉进了 NSSplitView。当我尝试设置每个视图控制器的NIB时,下拉菜单中只出现了主菜单/窗口NIB,手动键入所需的NIB似乎没有效果(运行应用程序时视图的内容实际上并没有出现) .这让我觉得我做错了什么。对于前两个窗格中的每一个应该使用什么类型的视图,我有点模糊。我显然会为最终窗格构建一个自定义窗格,但似乎前两个应该已经存在于 Cocoa 框架中。
无论如何,如果我做错了事,请不要费心解决我的问题;只是告诉我我应该做什么。我想我只需要一个合适的 Mac 开发人员来为我指明正确的方向。
【问题讨论】:
标签: xcode macos cocoa interface-builder cocoa-design-patterns