nib を作成するとき、作成するタイプは WindowNib または ViewNib の 2 つです。違いは、窓のペン先に窓とビューがあることです。
ビュー nib を別のウィンドウにロードするにはどうすればよいですか? WindowController を作成し、ウィンドウを追加してから、ペン先をウィンドウにロードする必要がありますか?
通常、NIB ごとにコントローラーを用意する必要があります。したがって、ウィンドウ NIB の場合、NSWindowController サブクラスをファイルの所有者として持つことになります。同様に、ビュー NIB の場合、NSViewController サブクラスをファイルの所有者として持つことになります。NSWindowController サブクラスを提示する場合、NSViewController サブクラスをインスタンス化し (適切なビュー NIB を渡します)、NSViewController のビュー プロパティをウィンドウのビュー階層にアタッチします。
Window Controller の awakFromNib メソッドの例では、次のようになります。
- (void) awakeFromNib {
_viewController = [[MyViewController alloc] initWithNibName: @"MyView" bundle: nil];
[[[self window] contentView] addSubview: [_viewController view]];
}
このコードをサブクラスのwindowDidLoad
メソッドに配置することもできます。NSWindowController