在我的mac应用程序中,我通过更改设备的系统分辨率来支持全屏。如果用户从全屏模式切换到窗口模式,或者如果用户退出应用程序并且我还需要处理强制退出情况,我将重置为旧分辨率。
1.如果用户按下cmd + opt + esc(强制退出),是否有任何API或回调告诉应用程序。
2.还有其他办法吗?
我知道在NSApplicaction中有一个选项可以禁用强制退出([NSApplication setPresentationOptions:NSApplicationPresentationDisableForceQuit])但不是禁用它我想处理强制退出事件。
答案 0 :(得分:3)
普遍的共识是强制退出发送SIGKILL
(“共识”,因为我不知道任何Apple文档说明这一点,但这是合乎逻辑的答案)。无法捕获SIGKILL
,因此您无法直接进行清理。另一种方法是运行一个帮助应用程序来监视主应用程序并进行清理,主应用程序可以在正常退出时终止帮助程序。另请参阅此question。