次の実装で呼び出されるNSWindowControllerサブクラスが_PreferencesWindowController
あります-
@synthesize window;
- (id)init {
self = [super initWithWindowNibName:@"PreferencesWindow"];
if (!self) return nil;
return self;
}
_PreferencesWindowController
そして、私は次のコードを使用してウィンドウを表示しようとしました-
_preferencesWindowController = [[_PreferencesWindowController alloc] init];
[_preferencesWindowController showWindow:nil];
それは何もしません、そして私がチェックしたの_preferencesWindowController.window
はnil
デバッガーからのものです。
ただし、ウィンドウを呼び出すloadView
と_preferencesWindowController
、ロードして表示できます。_preferencesWindowController.window
もはやゼロ値ではありません-
[_preferencesWindowController loadWindow];
NSWindowControllerに関するAppleのドキュメントを調べたところ、loadWindow
「直接呼び出すことは絶対にしないでください」と具体的に記載されており、代わりshowWindow:
に使用する必要があります。私が見ている上記の振る舞いをもたらしたのは、私が何を見逃したのだろうかと思います。