最后一个窗口关闭后退出应用程序

发布于 2024-11-09 13:28:50 字数 188 浏览 4 评论 0原文

我想在最后一个主窗口关闭时关闭我的应用程序。由于以下原因,我无法使用 applicationShouldTerminateAfterLastWindowClosed:
1. 在显示主窗口之前,会显示一个确认窗口,当该窗口关闭时,应用程序不应退出。
2. 即使还有任何帮助窗口仍然打开,应用程序也应该在关闭主窗口后退出。

I want to close my application when the last main window closes. I cannot use applicationShouldTerminateAfterLastWindowClosed: for the following reasons:
1. Before showing the main window, one confirmation window is displayed and when this window is closed, the application should not quit.
2. The application should quit after closing the main window even if there is any help window still open.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你怎么这么可爱啊 2024-11-16 13:28:50

您仍然可以使用applicationShouldTerminateAfterLastWindowClosed:

编写它以返回NO,直到您第一次显示主窗口的那一刻。从那时起让它返回YES

NSPanel 的实例不计入打开的窗口。因此,如果您的帮助窗口是 NSPanel,这将起作用。

You may still use applicationShouldTerminateAfterLastWindowClosed:

Write it to return NO until the moment you first show the main window. Make it return YES from then onwards.

Instances of NSPanel don't count towards open windows. Thus this will work if your help window is a NSPanel.

白况 2024-11-16 13:28:50

您需要做的是将控制类设置为主窗口的委托,然后使用 NSNotificationCenter 添加一个带有 NSWindowWillCloseNotification 的观察者,其中 yourWindow 是对象。现在

NSNotificationCenter *c = [NSNotificationCenter defaultCenter];
[c addObserver:self selector:@selector(yourSelector) name:NSWindowWillCloseNotification object:yourWindow];

,当主窗口关闭时,将调用 yourSelector 方法,因此在该方法中只需添加类似 exit(0); 的内容。

有关更多信息,请访问此处和查看窗口将关闭

What you need to do is set you controlling class as the delegate of your main window, and then using NSNotificationCenter add an observer with the NSWindowWillCloseNotification with yourWindow being the object. So like this

NSNotificationCenter *c = [NSNotificationCenter defaultCenter];
[c addObserver:self selector:@selector(yourSelector) name:NSWindowWillCloseNotification object:yourWindow];

Now, the method yourSelector will be called when the main window is close, so in that method just have something like exit(0);

For more info go here and look at windowWillClose

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文