У меня есть подкласс NSDocument с двумя NSWindowControllers, соответствующими двум разным xib.
Следуя Руководству по применению на основе документов, я добавил следующее в свою реализацию document.m.
- (void)makeWindowControllers
{
NSLog(@"in MakeWindowControllers");
MainWindowController *mainWindowController = [[MainWindowController alloc] init];
[mainWindowController autorelease];
[self addWindowController:mainWindowController];
csvWindowController = [[CSVWindowController alloc] init];
[csvWindowController autorelease];
[self addWindowController:csvWindowController];
}
Проблема в том, что я хочу, чтобы второй оконный контроллер csvWindowController изначально скрывал свое окно, позже я покажу тот же экземпляр окна. Для этого я написал:
@implementation CSVWindowController
- (id) init {
if ( ! (self = [super initWithWindowNibName:@"CSVWindow"]) ) {
NSLog(@"CSVWindowController init failed");
return nil;
}
window = [self window];
NSLog(@"CSVWindowController init");
[window orderOut:nil]; // to hide it
NSLog(@"CSVWindowController hiding the window");
return self;
}
Но окно есть, появляется.
Пожалуйста, нет, у меня не помечен VisibleAtLaunch, эта консоль правильно показывает мои сообщения, и даже если я изменю:
[window orderOut:nil]; // to hide it
to
[window orderOut:self]; // to hide it
Результат тот же, появляется окно.
Любая помощь приветствуется, спасибо :)