2012-07-10 175 views
1

在我的Mac應用程序中,我通過更改設備的系統分辨率來支持全屏。如果用戶從全屏模式切換到窗口模式,或者用戶退出應用程序,並且我還需要處理強制退出情況,我將重置爲舊分辨率。
1.是否有任何API或回調告訴應用程序,如果用戶按下cmd + opt + esc(強制退出)。
2.任何其他方式來處理這個?如何知道用戶是否強制退出應用程序?

我知道在NSApplicaction中有一個選項來禁用強制退出([NSApplication setPresentationOptions:NSApplicationPresentationDisableForceQuit]),但不是禁用它,我想處理強制退出事件。

回答

2

一般的共識是,強制退出發送SIGKILL(「共識」,因爲我不知道任何蘋果文檔說明這一點,但它是合乎邏輯的答案)。 A SIGKILL無法被捕獲,因此您無法直接進行清理。另一種方法是運行一個輔助應用程序來監視你的主應用程序並進行清理,主應用程序可以在正常退出時終止輔助程序。另請參閱此question

+0

如果您必須保持強制退出處於啓用狀態並對其進行處理,那麼助手應用程序似乎就是要走的路。 – paulmelnikow 2012-07-14 14:21:49

相關問題