私は Cocoa で単純なアプリケーションを開発しており、アプリケーションが全画面表示モードで実行されているかどうかを検出したいと考えています。これは可能ですか?
runningApplications API を介してさまざまな情報を取得できますが、フルスクリーン モードに関する特定のプロパティはありません。誰でもそれを検出する方法を知っていますか? このための炭素イベントまたは API はありますか?
私は Cocoa で単純なアプリケーションを開発しており、アプリケーションが全画面表示モードで実行されているかどうかを検出したいと考えています。これは可能ですか?
runningApplications API を介してさまざまな情報を取得できますが、フルスクリーン モードに関する特定のプロパティはありません。誰でもそれを検出する方法を知っていますか? このための炭素イベントまたは API はありますか?
とにかく、非常に多くのオプションを試し、NSWorkspace を掘り下げた後、これを達成する方法を見つけました。
"NSWorkspaceActiveSpaceDidChangeNotification"
Apple doc には、「Spaces の変更が発生したときに投稿されました」と記載されています。そのため、使用することで登録できます。これに加えて、NSWindow のプロパティ "isOnActiveSpace" を使用する必要があるため、これにより、アプリケーションがフル スクリーン モードに入って終了するタイミングを検出できます。
キー値を観察したい-[NSApplication currentSystemPresentationOptions]
。アクティブなアプリがフルスクリーン モードの場合、そのプロパティには が含まれますNSApplicationPresentationFullScreen
。