Iai*_*ney 13 macos cocoa objective-c
我正在构建一个程序,启动另一个程序,然后应该监视它,并在它终止时采取行动.启动应用程序后,我可以从NSWorkspace获取NSRunningApplication的实例.
现在,文档声明NSRunningApplication具有可以观察键值的属性"已终止".我试过实施:
[browserInstance addObserver:self
forKeyPath:@"terminated"
options:NSKeyValueObservingOptionNew
context:NULL];
Run Code Online (Sandbox Code Playgroud)
和:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
NSLog(@"observeValueForKeyPath");
if ([keyPath isEqual:@"terminated"])
{
NSLog(@"terminated");
}
}
Run Code Online (Sandbox Code Playgroud)
但我从来没有看到observeValueForKeyPath方法被绊倒.如果有可能,有谁知道如何使这项工作?我无法在网上找到任何具体的例子.
bob*_*vil 16
您是否尝试过keyPath"isTerminated"?
请注意,在NSRunningApplication的文档中,该属性terminated指定了getter isTerminated,而不是默认的getter terminated.(这是有道理的,因为布尔属性"是"或"不是")
这表明obj-c属性解析中可能存在错误,其中getter的名称用于KVO路径.
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |