У меня есть следующий код в приложении Какао:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSArray* arrayAppList = [[NSWorkspace sharedWorkspace] runningApplications];
}
Мое намерение состоит в том, чтобы использовать KVO для обнаружения приложения при изменении его состояния с неактивного на активное.
Я прочитал, что должен использовать метод экземпляра -addObserver:forKeyPath:options:context:
А затем используйте -observeValueForKeyPath:ofObject:change:context:
для ответа на уведомления об изменениях.
Я понимаю, что -observeValueForKeyPath
- это метод обратного вызова, в котором я могу написать код для ответа на изменения свойств, которые меня интересуют.
Тем не менее, я не совсем понимаю, как мне использовать метод addObserver, чтобы получать уведомления, когда свойство active
в runningApplications
изменяется. Теперь мне интересно, где находится место для регистрации, сейчас я использую -applicationDidFinishLaunching
, но не уверен, что это подходящее место для этого. Кроме того, если я использую метод обратного вызова -observeValueForKeyPath
, я должен реализовать его в классе, который наследуется от NSObject
, и в том же классе я регистрирую уведомление?