0

を使用して Mountain Lion でバンドルの内容を表示するにはどうすればよい[NSWorkspace selectFile:nil inFileViewerRootedAtPath:pathEndingWithDotBundle]ですか? つまりpathEndingWithDotBundle、ベース名が「folder.bundle」のようなパスです。この方法でこのメソッドを呼び出すと、ターミナルが開き、理由がわかりません...

4

1 に答える 1

1

バンドルを起動したいと考えているため、ターミナルが開きます。これがデフォルトのアプリケーションです。ドキュメントにはパスを開くとは記載されていないため、これに対してバグレポートを開きます。ファイルビューアで表示するとのことです。これがエラーであることは妥当です (バンドルは論理的にはディレクトリではなく、物理的には単なるディレクトリであるため)。しかし、別のプログラムを起動しようとするようなランダムなことをするのは意味がありません。

とはいえ、回避するのはかなり簡単です。Contentsバンドル内にある必要があるフォルダーを選択するだけです。

[[NSWorkspace sharedWorkspace] selectFile:[pathEndingWithDotBundle stringByAppendingPathComponent:@"Contents"] 
                 inFileViewerRootedAtPath:pathEndingWithDotBundle];

10.6以降では、使用できますactivateFileViewerSelectingURLs:

NSURL *URL = [NSURL fileURLWithPath:[pathEndingWithDotBundle stringByAppendingPathComponent:@"Contents"]];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[URL]];
于 2012-09-26T19:02:58.147 に答える