这适用于 10.7,但不适用于 10.8。我如何让它在山狮中工作?
-(IBAction)showTargetInFinder:(id)sender
{
NSString *linkPath = [targetField stringValue];
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
[ws selectFile:linkPath inFileViewerRootedAtPath:nil];
}
这适用于 10.7,但不适用于 10.8。我如何让它在山狮中工作?
-(IBAction)showTargetInFinder:(id)sender
{
NSString *linkPath = [targetField stringValue];
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
[ws selectFile:linkPath inFileViewerRootedAtPath:nil];
}
请改用此代码:
NSURL *fileURL = your file URL;
NSArray *fileURLs = [NSArray arrayWithObjects:fileURL, nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
这适用于 10.6+。如果您想在 Finder 上显示和选择多个文件,只需将更多文件添加NSURLs
到数组中即可。
从完整性检查的角度来看:如果运行进行[[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