6

これは10.7では機能しますが、10.8では機能しません。これをMountainLionで機能させるにはどうすればよいですか?

-(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 に答える