我有一个编码风格的问题,可能应该问工作中的资深mac程序员-但由于我是唯一的mac程序员,嗯,所以它是。我的软件(3D模型、数据可视化)有一个弹出式GUI,弹出窗口主要是一个选项卡式控件,每个选项卡中都有大量内容(滑块、单选按钮、复选框等)。每个标签大约有20个控件,可能还有半打标签...使用一个控制器来处理所有的视图将很快变得非常笨拙。
有一个加载了一堆标签的MainViewController是不是很好的风格?
NSView *tabA = [[NSView alloc] initWithNibName:@"tabA.nib" bundle:[NSBundle bundleWithPath:@"/Applications/BOB.app"]];
NSView *tabB = [[NSView alloc] initWithNibName:@"tabB.nib" bundle:[NSBundle bundleWithPath:@"/Applications/BOB.app"]];这是我在iOS上的做法,但我不确定Mac。我更喜欢一种提供可维护性和灵活性的风格,因为代码正在进行原型设计,我可能需要频繁地更改它。
如果这不是好的风格,什么是好的风格呢?
谢谢!
发布于 2010-07-28 02:33:10
我认为你的风格很合理。您可以为每个选项卡创建一个NSViewController子类,并使用NSTabViewItem将其分配给NSTabView。
顺便说一句,我觉得最好
NSViewController *tabAcontroller = [[TabAController alloc] init]; 使用定义为init的@interface TabAController:NSViewController ... @end
-init{
self=[super initWithNibName:@"tabA" bundle:nil];
if(self){
...
}
return self;
}请注意,在调用initWithNibName:bundle:时不需要扩展.nib。而且你的不应该指定应用程序的硬编码路径。在iOS中,应用程序的位置是由操作系统给定的(带有隐秘的文件夹名称),但在OS上,用户可以自由地将应用程序包移动到他想要的任何地方。因此,永远不要将主包称为[NSBundle bundleWithPath:@"hard coded path"]。只使用[NSBundle mainBundle],或者在大多数情况下只使用nil。它是在文档中编写的,而您可以只使用nil。
https://stackoverflow.com/questions/3343702
复制相似问题