4

私は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、通知を登録しているのと同じクラスから継承するクラスにそれを実装する必要がありますか?

4

1 に答える 1

4
于 2011-11-29T21:04:04.890 に答える