

お世話になります。

題記の通りXcode 8.3.2
を使って作成したプロジェクトで、DocumentクラスにWindowControllerで作成したウィンドウを追加しようと、下記のようなコードを書きましたが、NSLog文で参照したDocumentのwindowControllersにはwc2しか入っていませんでした。

何故、同じWindowControllerの（サブクラス）のインスタンスなのに、片方は`WindowControllers`に追加され、もう片方は追加されないのでしょうか？  
デバッガーでステップ実行しながら確認したところ、両方ともインスタンスは生成されていてnilを渡している可能性はありません。

`HogeWindowController`のインスタンスを`addWindowControllers:`に追加する作法が増えたのでしょうか？

ご存じの方、原因がわかる方、回答を是非お願いします。

[code]

    - (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);
    }
    
[/code]

出力結果

[code]

    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>"
    )
    
[/code]


CC BY-SA 3.0
2017-04-21T09:05:07.947
34185
2017-07-21T18:05:26.490
2017-07-21T18:05:26.490
754
14745
question
xcode objective-c macos xcode8
Xcode8.3で作成したプロジェクトでWindowControllerが登録されない