1

我刚刚进入桌面 Cocoa 开发(我有 iOS 开发经验)。如果这个问题看起来很基本,请原谅我。

话虽如此,我正在处理一个需要处理大量计算和功能的大型程序。几乎有十几个视图,用 NSTabView 组织。而不是将所有内容都倾倒到一个类的怪物中并创建一个让我的系统崩溃的 XIB 文件(Xcode 显然不是那么高效......谁知道?:P)。我希望每个选项卡都是它自己的 NSViewController 以及随附的 XIB;因此,我想从相应的 XIB 加载每个选项卡的视图。

我正在根据 UITabBarController 考虑这一点,但这似乎不起作用(据我所知,没有 NSTabViewController)。我不确定如何做到这一点(或者即使有可能——但我不能是唯一一个遇到这个问题的人?),我会很感激任何帮助。谢谢!

更新:我尝试将控制器的视图分配给选项卡的视图,但很快意识到这不会让我到任何地方。是否值得从头开始创建 NSTabViewController,或者是否有解决方案?

4

2 回答 2

3

与 iOS 开发相比,桌面上的 Cocoa 开发存在一些重大差异。其中之一是使用视图控制器——它们并不是绝对必要的——当你使用它们时,你可以坚持使用通用的 NSViewController,而不管它包含什么样的视图。您需要控制选项卡视图的所有方法都在 NSTabView 类中 - 而不是控制器。

话虽如此,将 12 个视图放入 tabview 听起来是一种与程序交互的痛苦方式。您是否考虑过源详细信息类型设置(想想 iTunes 或带有侧边栏的邮件 - 侧边栏中的每个条目对应于不同的视图)?

于 2011-09-08T00:15:20.060 回答
1

我已经放弃了标签栏,根据 sosborn 的建议,我使用了拆分视图——或者更确切地说,我在侧面放置了一个表格视图,而自定义视图占据了大部分屏幕。然后,在我的 AppDelegate 中,我有单独的控制器作为 ivars(我需要单独的控制器,因为涉及很多计算,我不想让怪物类处理所有这些)。它们将被延迟加载,并且视图将根据需要分配给当前控制器的视图。

于 2011-09-11T23:35:11.107 回答