0

在当前的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];
4

1 回答 1

1

如果您想在打开另一个窗口时关闭一个窗口,那么您不应该使第二个窗口成为第一个窗口的子窗口。当您关闭子窗口的父窗口时,子窗口也将关闭。您可以在代码中创建一个新窗口,然后使用 orderFront 或 makeKeyAndOrderFront: 将其显示在屏幕上,然后关闭其他窗口。您还可以在 IB 中添加另一个窗口,并取消选中 Visible At Launch,这样它只会在您调用我上面提到的方法之一时显示。

于 2012-07-24T04:13:34.187 回答