6

这适用于 10.7,但不适用于 10.8。我如何让它在山狮中工作?

-(IBAction)showTargetInFinder:(id)sender
{

     NSString *linkPath = [targetField stringValue];
     NSWorkspace *ws = [NSWorkspace sharedWorkspace];
     [ws selectFile:linkPath inFileViewerRootedAtPath:nil];

}
4

2 回答 2

7

请改用此代码:

NSURL *fileURL = your file URL;
NSArray *fileURLs = [NSArray arrayWithObjects:fileURL, nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];

这适用于 10.6+。如果您想在 Finder 上显示和选择多个文件,只需将更多文件添加NSURLs到数组中即可。

于 2013-01-06T01:14:10.570 回答
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
于 2015-06-18T14:54:21.070 回答