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