【问题标题】:How to close current window after a new window showed显示新窗口后如何关闭当前窗口
【发布时间】:2012-07-24 12:19:41
【问题描述】:

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

【问题讨论】:

  • 您确定应用程序已终止,还是只是所有窗口都已关闭?应用菜单是否仍然可见?
  • @rdelmar 谢谢,我发现它只是所有的窗户都关闭了。

标签: objective-c macos cocoa nswindowcontroller


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    相关资源
    最近更新 更多