私はCocoaアプリケーションに次のコードを持っています:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSArray* arrayAppList = [[NSWorkspace sharedWorkspace] runningApplications];
}
私の意図は、KVOを使用して、アプリケーションの状態が非アクティブからアクティブに変化したときにアプリケーションを検出することです。
インスタンスメソッドを使用する必要があることを読みました-addObserver:forKeyPath:options:context:
次に、を使用-observeValueForKeyPath:ofObject:change:context:
して変更通知に応答します。
-observeValueForKeyPath
これは、関心のあるプロパティの変更に応答するコードを記述できるコールバックメソッドであることを理解しています。
active
それでも、変更のプロパティが通知されるようにするには、addObserverメソッドをどのように使用する必要があるのか混乱していrunningApplications
ます。今、私は登録を行う場所がどこにあるのか疑問に思っています。今のところ私は使用して-applicationDidFinishLaunching
いますが、それを行うのに適切な場所かどうかはわかりません。さらに、-observeValueForKeyPath
コールバックメソッドを使用する場合NSObject
、通知を登録しているのと同じクラスから継承するクラスにそれを実装する必要がありますか?