这适用于10.7但不适用于10.8。我如何在山狮中使用它?
-(IBAction)showTargetInFinder:(id)sender
{
NSString *linkPath = [targetField stringValue];
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
[ws selectFile:linkPath inFileViewerRootedAtPath:nil];
}
答案 0 :(得分:7)
请改用此代码:
NSURL *fileURL = your file URL;
NSArray *fileURLs = [NSArray arrayWithObjects:fileURL, nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
这适用于10.6+。如果您想在Finder上显示并选择多个文件,只需在阵列中添加更多NSURLs
,就可以了。
答案 1 :(得分:0)
从完整性检查的角度来看:如果运行进行[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[ fileURL ]]
调用的进程的用户没有fileURL
的读取/查看权限,那么该方法似乎“不起作用”
要确定这是否是您的问题(从OS X 10.10.3开始),请在控制台中查看以下日志:
6/18/15 10:34:46.195 AM NameOfApp[42753]: AppleEvents failed to encode extension for /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/xxxxxxxxxxx/yyyy.zzz, err=Permission denied/13