2011-05-25 90 views
1

我想在最後一個主窗口關閉時關閉我的應用程序。由於以下原因,我無法使用applicationShouldTerminateAfterLastWindowClosed:
1.在顯示主窗口之前,會顯示一個確認窗口,當此窗口關閉時,應用程序不應退出。
2.即使有任何幫助窗口仍然打開,應用程序應在關閉主窗口後退出。最後一個窗口關閉後退出應用程序

回答

0

你需要做的是設置你控制類作爲你的主窗口的委託,然後使用NSNotificationCenter添加一個觀察者與NSWindowWillCloseNotification與yourWindow作爲對象。所以像這樣的

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

現在,當主窗口關閉,所以該方法只需要像出口(0)的方法yourSelector將被調用;

欲瞭解更多信息請here看看windowWillClose

+1

我想'[NSApp terminate:self];'比'exit(0)更好;' – Raviprakash 2011-05-25 08:45:29

+0

是的,那就是,我只是給出了一個粗略的例子。 – 2011-05-25 13:06:26

13

您仍然可以使用applicationShouldTerminateAfterLastWindowClosed:

寫返回NO,直到那一刻,你首先顯示在主窗口。從此之後,讓它返回YES

NSPanel的實例不計入打開的窗口。因此,如果您的幫助窗口是NSPanel,這將工作。

+0

這可能是一個解決方案,使用通知對我來說更簡單。 – Raviprakash 2011-05-25 08:46:41

相關問題