1

nib を作成するとき、作成するタイプは WindowNib または ViewNib の 2 つです。違いは、窓のペン先に窓とビューがあることです。

ビュー nib を別のウィンドウにロードするにはどうすればよいですか? WindowController を作成し、ウィンドウを追加してから、ペン先をウィンドウにロードする必要がありますか?

4

1 に答える 1

5

通常、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

于 2009-11-14T01:45:20.910 に答える