Как закрыть текущее окно после появления нового окна

В текущем NSWindowController добавьте дочернее окно (mainViewController.window), затем закройте текущее окно, НО, когда вызывается метод [self.window close], приложение завершается (не происходит сбой, потому что я могу получить метод windowWillClose формы сообщения журнала) ;

[self.window addChildWindow:mainViewController.window ordered:NSWindowAbove];
[self.window close];

Я хочу: закрыть текущее окно, когда появится новое окно. Я ошибаюсь?

=================================== ОБНОВЛЕНИЕ ============== ======================

Спасибо @rdelmar, моя ошибка, приложение не закрывается, просто все окна закрыты.

[self.window orderFront:mainViewController.window];
[self.window close];

person Mil0R3    schedule 24.07.2012    source источник
comment
Вы уверены, что приложение закрыто, или просто все окна закрыты? Меню приложения все еще отображается?   -  person rdelmar    schedule 24.07.2012
comment
@rdelmar спасибо, я нашел просто все окна закрыты.   -  person Mil0R3    schedule 24.07.2012


Ответы (1)


Если вы хотите закрыть одно окно при открытии другого, не следует делать это второе окно дочерним по отношению к первому. Когда вы закрываете родительское окно дочернего окна, дочернее окно также закрывается. Вы можете просто создать новое окно в коде, а затем использовать orderFront или makeKeyAndOrderFront: чтобы вывести его на экран, а затем закрыть другое окно. Вы также можете добавить еще одно окно в IB и снять флажок «Видимо при запуске», чтобы оно отображалось только при вызове одного из упомянутых выше методов.

person rdelmar    schedule 24.07.2012