2012-07-24 167 views
0

在當前的NSWindowController中,添加一個子窗口(mainViewController.window),然後關閉當前窗口,但當調用方法[self.window close]時,應用程序終止(不是崩潰,因爲我可以獲取日誌消息窗體方法windowWillClose);如何在新窗口顯示後關閉當前窗口

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

我想要的是:關閉當前窗口,當一個新窗口顯示。是我的方式錯了嗎?

=================================== UPDATE ========== ==========================

謝謝@rdelmar,我的錯誤,應用程序沒有終止,只是所有的窗戶關閉。

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

您確定應用程序已終止,或只是所有的窗戶都關閉了嗎?應用菜單是否仍然可見? – rdelmar 2012-07-24 04:03:02

+0

@ rdelmar謝謝,我發現它只是所有的窗戶都關閉了。 – Mil0R3 2012-07-24 04:11:58

回答

1

如果您想在打開另一個窗口時關閉一個窗口,則不應將第二個窗口設置爲第一個窗口的子窗口。當你關閉一個子窗口的父窗口時,子窗口也會關閉。您可以在代碼中創建一個新窗口,然後使用orderFront或makeKeyAndOrderFront:將其顯示在屏幕上,然後關閉另一個窗口。您也可以在IB中添加另一個窗口,並取消選中Visible At Launch,以便在您調用上述方法之一時顯示。