首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoa NSTabView编码风格问题

Cocoa NSTabView编码风格问题
EN

Stack Overflow用户
提问于 2010-07-27 20:42:50
回答 1查看 1.6K关注 0票数 1

我有一个编码风格的问题,可能应该问工作中的资深mac程序员-但由于我是唯一的mac程序员,嗯,所以它是。我的软件(3D模型、数据可视化)有一个弹出式GUI,弹出窗口主要是一个选项卡式控件,每个选项卡中都有大量内容(滑块、单选按钮、复选框等)。每个标签大约有20个控件,可能还有半打标签...使用一个控制器来处理所有的视图将很快变得非常笨拙。

有一个加载了一堆标签的MainViewController是不是很好的风格?

代码语言:javascript
复制
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。我更喜欢一种提供可维护性和灵活性的风格,因为代码正在进行原型设计,我可能需要频繁地更改它。

如果这不是好的风格,什么是好的风格呢?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-28 02:33:10

我认为你的风格很合理。您可以为每个选项卡创建一个NSViewController子类,并使用NSTabViewItem将其分配给NSTabView

顺便说一句,我觉得最好

代码语言:javascript
复制
NSViewController *tabAcontroller = [[TabAController alloc] init]; 

使用定义为init@interface TabAController:NSViewController ... @end

代码语言:javascript
复制
-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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3343702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档