2011-11-19 99 views
2

我實現applicationWillTerminate方法,但它從來沒有所謂applicationWillTerminate不叫

-(void)applicationWillTerminate:(NSNotification *)notification 
{ 
    [[NSApplication sharedApplication] terminate:self]; 
    NSLog(@"EOP"); 
} 

如何申請前關閉執行一些代碼?

感謝

+0

實在不行,還有來自iOS的開發庫是UIApplication的,在這裏的Mac OS –

回答

4

我只是說

-(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender{ 
return TRUE 
} 

現在applicationWillTerminate調用

+1

如果這改變它,那麼也許該應用程序實際上並沒有關閉?你剛剛關閉了應用程序的所有窗口? –

+0

最有可能你是對的。但現在應用程序關閉:我得到了我需要的 –

+1

這是不可能關閉一個應用程序;那個動詞不和那個名詞一起去。是的,當用戶關閉最後一個窗口時,應用程序通常不會自動退出;你必須選擇那個。事實上,使用Quit命令退出應用程序總是會觸發'applicationWillTerminate:'(假設沒有任何內容,例如確認提醒)。在Lion中引入的另一個替代方案是Automatic Termination,它更懶惰,假裝應用程序仍在運行;看文檔。 –

1

請設置您的plist到YES鍵(UIApplicationExitsOnSuspend)。

UIApplicationExitsOnSuspend - (類型)布爾 - (值)是

+0

這個問題是關於osx不是ios的,注意'NSApplication'的問題? –