Safariが起動されるたびに、Macアプリに何かをさせようとしています。Safari の起動を検出する明白な方法は、実行中のプロセスをポーリングすることです。これを行うより良い方法はありますか?
コールバックを登録するために使用できる API があるかもしれない、または監視できる通知センター イベントがあるかもしれないと考えていました。
Safariが起動されるたびに、Macアプリに何かをさせようとしています。Safari の起動を検出する明白な方法は、実行中のプロセスをポーリングすることです。これを行うより良い方法はありますか?
コールバックを登録するために使用できる API があるかもしれない、または監視できる通知センター イベントがあるかもしれないと考えていました。
NSWorkspaceのオブザーバーとして、の通知センターに自分を追加できますNSWorkspaceDidLaunchApplicationNotification。通知を受け取ったら、そのインスタンスがNSRunningApplication提供するもの(キーの通知のuserInfo内のオブジェクトNSWorkspaceApplicationKey)を調べて、起動されたのがSafariであるかどうかを判断します。
NSDistributedNotificationCenterクラスとNSWorkspaceクラスを確認してください。
次の投稿が役立つかもしれません:Mac OS Xでアプリケーション起動イベントをリッスンする方法は?