NSWorkspaceDidActivateApplicationNotificationとNSWorkspaceDidLaunchApplicationNotificationの両方の通知を使用して、ユーザーが操作しているアプリを確認しています。
問題は、アプリケーションを開いたばかりでまだ起動している場合、最初にアクティブ化通知を受け取り、その後すぐに起動通知を受け取ることです。
activateメソッド内で、アプリがまだ起動中であり、まだ使用する準備ができていないことを知る方法はありますか?(まだドックで跳ねています)
Appleによるichatサンプルプロジェクトは上記のアプローチを使用せず、代わりに起動通知のみをリッスンしていることがわかります。次に、kAXApplicationActivatedNotificationを使用して、アプリにAXObserverを追加します。これは好ましい方法ですか?(また、NSRunningApplicationsを使用して、既にロードされているすべてのアプリにオブザーバーを追加します)。
メモリをあまり消費しないと思うので、単純なNSNotificationsだけを使い続けたいと思いました。(ロードされたすべてのアプリについてオブザーバーを維持する必要はありません)。