Cocoa应用程序首选项(一个XIB中的视图?)

时间:2013-10-01 10:24:38

标签: cocoa xib nsview nib nsviewcontroller

我只是想知道当我创建我的应用程序首选项时,如果最好能够在一个XIB中拥有所有视图并且具有:

-(id)initWithSelectedToolBarItem: (NSToolBarItem*)toolBarItem{
    self = [self initWithNibName: [[toolBarItem label] stringByReplacingOccurrencesOfString:@" " withString:@""] bundle:nil];
    // init code in initWithNibName...
    if (!self) return nil;
        return self;
}

或者只是走传统路线并有单独的笔尖等......?

我问的原因是因为到目前为止,项目变得越来越大(如单独文件的数量),我正在努力将其削减一点。

任何建议都会非常感激!

提前干杯:)

1 个答案:

答案 0 :(得分:1)

我的首选项窗口代码包含每个视图,这些视图使用像您这样的工具栏切换,在一个.xib中,从首选项窗口控制器到每个NSView实例的出口:

@interface PreferenceController : NSWindowController <NSWindowDelegate, NSToolbarDelegate, FontChooserViewDelegate> {
    // Main window
    IBOutlet NSToolbar *_toolbar;
    IBOutlet NSBox *_box;
    IBOutlet NSButton *_restoreDefaultsButton;
    IBOutlet NSView *_generalPrefsView;
    IBOutlet NSView *_boardPrefsView;
    IBOutlet NSView *_movesPrefsView;

    // Other outlets to individual UI elements on some of the views.
}

所以我说“是”,你应该这样做,但是不需要继承NSView,因此不需要担心特殊的初始化。

编辑实际上,这是谎言;其中一个视图是子类,但使用标准NSView初始化(initWithFrameawakeFromNib)。