Я выполняю эти строки, чтобы показать окно настроек:
-(IBAction)showPreferences:(id)sender {
PreferencesWindowController *preferencesWindowController = [[PreferencesWindowController alloc] init];
NSNib *preferencesNib = [[NSNib alloc] initWithNibNamed:@"PreferencesWindow" bundle:nil];
[preferencesNib instantiateNibWithOwner:preferencesWindowController topLevelObjects:nil];
[NSApp activateIgnoringOtherApps:YES];
[[preferencesWindowController window] makeKeyAndOrderFront:nil];
[preferencesNib release];
}
Но когда пользователь нажимает второй раз на кнопку настроек (и окно настроек все еще открыто), он открывает другой экземпляр окна настроек.
Как мне предотвратить это, не взламывая контрольные переменные? Должен ли я отредактировать мой PreferencesWindowController как одиночный?