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:成功调用但是copiedText为空,不应该。 在调用NSPerformService之前,我确实选择了一些文本。
如果我通过选择“服务”菜单调用我的服务,它可以正常工作。
我假设调用NSPerformService没有将选择文本写入generalPasteboard。
答案 0 :(得分:0)
NSPerformService
无法自动获取所选文字。它旨在使您能够在没有UI的情况下使用服务(例如,在命令行工具中)。您必须专门将要使用该服务的文本放入作为参数提供的粘贴板中。当然,对于“复制选定文本”服务,这没有任何意义......