У меня есть подкласс 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];
Я посмотрел документацию Apple по NSWindowController, в которой говорится, что «вы никогда не должны напрямую вызывать loadWindow
», вместо этого следует использовать showWindow:
. Мне интересно, что я мог упустить из-за вышеупомянутого поведения, которое я видел.