5

Mac OS X で、最前面のウィンドウが別のウィンドウ (Objective-C ソリューション、Python、AppleScript、またはその他) に切り替わったときに通知を受け取る方法があるかどうか疑問に思っています。アプリケーション内だけでなく、システム全体を見たい。私のアプリは、ユーザーが現在作業しているファイルを追跡しようとしています。AppleScript を実行することで、最前面のアプリと最前面のウィンドウを頻繁に取得するポーリング ソリューションを使用していますが、それを実行できれば私の人生は単純になります。最前面のウィンドウが変更されたことを知っている場合にのみ確認してください。

また、NSDistributedNotificationCenter と NSEvents のグローバル イベント モニターも調べました。どちらもさまざまな方法で役立ちますが、理想的に探している特定のフロント ウィンドウ変更通知を提供することはできないようです。

私が試すべき方向性、またはこれが可能かどうかについてのアイデアは、大歓迎です!

4

2 に答える 2

3

ウィンドウが変更されたときに通知を受け取る方法はわかりませんが、objective-c では、アプリケーション レベルで何かが発生したときに通知を受け取ることができます。それはあなたを助けるかもしれません。

NSWorkspace 通知に登録したい...

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(nsworkspaceNotification:) name:nil object:nil];

通知については、NSWorkspace クラスのドキュメントの下部を参照してください。あなたを助けるであろういくつかは次のとおりです:NSWorkspaceDidLaunchApplicationNotification、NSWorkspaceDidActivateApplicationNotification、NSWorkspaceDidDeactivateApplicationNotification、NSWorkspaceDidHideApplicationNotification、NSWorkspaceDidUnhideApplicationNotification。他にもあるかもしれません。

幸運を。

于 2013-07-23T21:00:03.403 に答える