我只是想知道当我创建我的应用程序首选项时,如果最好能够在一个XIB中拥有所有视图并且具有:
-(id)initWithSelectedToolBarItem: (NSToolBarItem*)toolBarItem{
self = [self initWithNibName: [[toolBarItem label] stringByReplacingOccurrencesOfString:@" " withString:@""] bundle:nil];
// init code in initWithNibName...
if (!self) return nil;
return self;
}
或者只是走传统路线并有单独的笔尖等......?
我问的原因是因为到目前为止,项目变得越来越大(如单独文件的数量),我正在努力将其削减一点。
任何建议都会非常感激!
提前干杯:)
答案 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
初始化(initWithFrame
和awakeFromNib
)。