2012-07-24 162 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,以便在您调用上述方法之一时显示。