我在 Cocoa 应用程序中有以下代码:
- (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
并且与我注册通知的类相同?