我想在最后一个主窗口关闭时关闭我的应用程序。由于以下原因,我无法使用applicationShouldTerminateAfterLastWindowClosed:
:
1.在显示主窗口之前,会显示一个确认窗口,当此窗口关闭时,应用程序不应退出
2.即使有任何帮助窗口仍然打开,应用程序应在关闭主窗口后退出。
答案 0 :(得分:13)
您仍然可以使用applicationShouldTerminateAfterLastWindowClosed:
将其写入返回NO
,直到您第一次显示主窗口为止。从那时起让它返回YES
。
NSPanel的实例不计入打开的窗口。因此,如果您的帮助窗口是NSPanel,这将有效。
答案 1 :(得分:0)
您需要做的是将控件类设置为主窗口的委托,然后使用NSNotificationCenter添加一个带有NSWindowWillCloseNotification的观察者,并将yourWindow作为对象。所以喜欢这个
NSNotificationCenter *c = [NSNotificationCenter defaultCenter];
[c addObserver:self selector:@selector(yourSelector) name:NSWindowWillCloseNotification object:yourWindow];
现在,当主窗口关闭时,将调用youSelector方法,因此在该方法中只有exit(0);
有关详细信息,请转到here并查看windowWillClose