2012-07-10 141 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

相关问题