1

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

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

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

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

任何建议将不胜感激!

提前干杯:)

4

1 回答 1

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)。

于 2013-10-05T09:31:18.310 回答