【发布时间】:2012-01-09 04:20:32
【问题描述】:
我在 Cocoa 应用程序中有以下代码:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSArray* arrayAppList = [[NSWorkspace sharedWorkspace] runningApplications];
}
我的目的是在应用程序的状态从非活动变为活动时使用 KVO 来检测它。
我读到我必须使用实例方法-addObserver:forKeyPath:options:context:
然后使用-observeValueForKeyPath:ofObject:change:context:响应变更通知。
我了解-observeValueForKeyPath 是一种回调方法,我可以在其中编写代码来响应我感兴趣的属性更改。
尽管如此,我对必须如何使用 addObserver 方法以便在 runningApplications 的 active 属性更改时收到通知感到困惑。现在,我想知道在哪里进行注册,目前我使用的是-applicationDidFinishLaunching,但不确定是否是正确的注册地点。此外,如果我使用-observeValueForKeyPath 回调方法,我必须在继承自NSObject 的类中实现它,并且与我注册通知的类相同?
【问题讨论】:
标签: macos key-value-observing nsworkspace nsrunningapplication