我刚刚开始使用界面构建器,我想创建一个与Coda或Versions类似的标签式单窗口应用程序。
然而,我无法弄清楚我应该采取什么方法。我想我可能需要创建自己的标签栏和某种控制器来加载/卸载不同的“视图”,但个人的“观点”应该是什么?
是创建多个窗口并以某种方式在父窗口中加载它们的情况,还是应该切换一堆自定义视图的可见性,还是有完全不同的方法?
答案 0 :(得分:3)
在Cocoa中切换一组视图的标准方法是使用NSTabView
。您可以setTabViewType:
至NSNoTabsNoBorder
完全隐藏标签,仅使用标签视图切换您的观看次数。如果将选项卡视图放入窗口的内容视图中,并调整自动调整大小,则选项卡视图将切换整个窗口内容。
您可以使用自定义工具栏项激活各个标签。
答案 1 :(得分:2)
我就是这样做的:
对于每个视图,我创建了单独的nib和ViewController(SomethingViewController:NSViewController)。在nib中我将“File的所有者”设置为SomethingViewController。
视图控制器自动加载nib:
- (id) init { if(self = [super initWithNibName:@"HistoryTab" bundle:nil]) { [self loadView]; } return self; }
我只是创建了ViewController的实例。
要创建像Coda一样的标签,您需要编写一些代码或使用BWToolkit
对不起我的英文;)
编辑:
我会忘记 - 在主窗口中我有mainView视图,加载ViewController后我只在app控制器中执行:
[self.mainView addSubview:[viewController view]];
切换标签I时:
[[viewController view] removeFromSuperlayer];