1

私の Mac アプリケーションでは、デバイスのシステム解像度を変更して全画面表示をサポートしています。また、ユーザーがフルスクリーンからウィンドウモードに切り替えた場合、またはユーザーがアプリを終了し、強制終了のケースも処理する必要がある場合は、古い解像度にリセットしています。
1. ユーザーが cmd+opt+esc (強制終了) を押したかどうかをアプリケーションに通知する API またはコールバックはありますか。
2.これを処理する他の方法はありますか?

NSApplicaction には、強制終了 ([NSApplication setPresentationOptions: NSApplicationPresentationDisableForceQuit]) を無効にするオプションがあることは知っていますが、無効にする代わりに、強制終了イベントを処理したいと考えています。

4

1 に答える 1

3

一般的なコンセンサスは、強制終了が送信することSIGKILLです (「コンセンサス」とは、これを述べているAppleのドキュメントを知らないためですが、それが論理的な答えです)。ASIGKILLはキャッチできないため、直接クリーンアップを行うことはできません。別の方法は、メイン アプリを監視してクリーンアップを行うヘルパー アプリケーションを実行することです。メイン アプリは、通常の終了時にヘルパーを終了できます。この質問も参照してください。

于 2012-07-10T18:52:03.557 に答える