「5つのペン先ファイルを作成しました。それぞれに異なるウィンドウがあり、ペン先ごとにクラスファイルがあります。」5つの異なるウィンドウ(ビューではない)があり、ボタンを押すとそれらを開きたいと想定しています。
各ウィンドウnibファイルはNSWindowController
、MVCではCになるaによって制御されます。nibファイルを(プログラムで)実際にロードするには、それにNSWindowController
;を割り当てます。OSXのはiPhoneNSWindowController
のに匹敵します。UIViewController
NSWindowController *controller = [[NSWindowController alloc] initWithWindowNibName:@"nib1"]
次に、NSWindowControllerが管理するウィンドウを開閉できます。
[controller showWindow:nil]
ウィンドウを表示するには
[controller.window makeKeyAndOrderFront:self]
ウィンドウをキーウィンドウにします。
ただし、同じウィンドウを維持しながら、そのウィンドウのコンテンツビューを切り替えるという、別のことを行うつもりである可能性があります。その場合、ウィンドウではなく、ビューを含む(そして、NSViewControllersを使用してそれらをロードする)nibファイルが必要になります(ウィンドウがあると冗長になるため)。
ただし、Windowsを使い続ける場合でも、contentViewを置き換えるには次のようにします。
[currentWindow setContentView:[newWindowController.window contentView]];
AppleがWindows、ビュー、およびアプリケーションで提供しなければならないすべてのドキュメントを読む必要があります。