Xcode8.3で作成したプロジェクトでWindowControllerが登録されない
お世話になります。
題記の通りXcode 8.3.2 を使って作成したプロジェクトで、DocumentクラスにWindowControllerで作成したウィンドウを追加しようと、下記のようなコードを書きましたが、NSLog文で参照したDocumentのwindowControllersにはwc2しか入っていませんでした。
何故、同じWindowControllerの(サブクラス)のインスタンスなのに、片方はWindowControllers
に追加され、もう片方は追加されないのでしょうか?
デバッガーでステップ実行しながら確認したところ、両方ともインスタンスは生成されていてnilを渡している可能性はありません。
HogeWindowController
のインスタンスをaddWindowControllers:
に追加する作法が増えたのでしょうか?
ご存じの方、原因がわかる方、回答を是非お願いします。
- (void) makeWindowControllers {
HogeWindowController *wc1 = [[HogeWindowController alloc] initWithWindowNibName:@"HogeWindowController"];
wc1.document = self;
NSWindowController *wc2 = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"Document Window Controller"];
// Override to return the Storyboard file name of the document.
[self addWindowController:wc1];
[self addWindowController:wc2];
NSLog(@"%@", wc1);
NSLog(@"%@", wc2);
NSLog(@"%@", self.windowControllers);
}
出力結果
2017-04-21 18:03:23.619170+0900 Charleston[83983:832625] <HogeWindowController: 0x600000086400>
2017-04-21 18:03:26.545108+0900 Charleston[83983:832625] <NSWindowController: 0x618000085a50>
2017-04-21 18:03:28.271030+0900 Charleston[83983:832625] (
"<NSWindowController: 0x618000085a50>"
)