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



我只是想知道当我创建应用程序首选项时,是否最好将所有视图放在一个 XIB 中并具有:

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

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

问的原因是因为到目前为止,该项目变得越来越大(就像单独文件的数量一样(,我正试图减少一点。

任何建议将不胜感激!

提前干杯:)

我的首选项窗口代码将每个视图(使用像您这样的工具栏进行切换(放在一个.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(。

最新更新