问题描述
||
NSPerformService(@\"copy Selected Text\",pboard);
- (void)copyText:(NSPasteboard *)pboard userData:(Nsstring *)userData error:(Nsstring **)error {
Nsstring *copiedText = [pboard stringForType:NsstringPboardType];
NSLog(\'copied text %@\',copiedText);
}
copyText:userData:error:已成功调用,但copyedText为空,不应为空。
在调用NSPerformService之前,我确实选择了一些文本。
如果我通过选择“服务”菜单来调用我的服务,则它可以正常工作。
我假设调用NSPerformService不会将选择文本写入generalPasteboard。
解决方法
NSPerformService
无法自动获取所选文本。旨在使您能够使用没有UI的服务(例如,在命令行工具中)。您必须将希望服务使用的文本专门放入作为参数提供的粘贴板中。当然,对于服务“复制选定的文本”,这没有任何意义...