创建 nib 时,我有 2 种类型要创建,一个 WindowNib 或一个 ViewNib。我看到不同之处在于,窗口笔尖有一个窗口和一个视图。
如何将视图笔尖加载到另一个窗口中?我是否必须创建一个 WindowController 并添加一个窗口然后在窗口中加载笔尖?
通常,每个 NIB 都应该有一个控制器。因此,对于 Window NIB,您将拥有一个 NSWindowController 子类作为文件的所有者。类似地,对于视图 NIB,您将拥有一个 NSViewController 子类作为文件的所有者。在您提供 NSWindowController 子类的情况下,将实例化 NSViewController 子类(将其传递给适当的视图 NIB),然后将 NSViewController 的视图属性附加到窗口的视图层次结构。
在您的窗口控制器的 awakFromNib 方法中,您将拥有以下示例:
- (void) awakeFromNib {
_viewController = [[MyViewController alloc] initWithNibName: @"MyView" bundle: nil];
[[[self window] contentView] addSubview: [_viewController view]];
}
您也可以将此代码放在子类的windowDidLoad
方法中NSWindowController
。