2

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

4

2 回答 2

13

你仍然可以使用applicationShouldTerminateAfterLastWindowClosed:

将其写入返回NO,直到您第一次显示主窗口。让它YES从那时起返回。

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

于 2011-05-25T08:20:51.350 回答
0

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

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

现在,方法 yourSelector 将在主窗口关闭时被调用,所以在该方法中只有类似 exit(0); 的内容。

有关更多信息,请转到此处并查看 windowWillClose

于 2011-05-25T07:10:28.983 回答