XcodeプロジェクトからOSXFinderウィンドウをプログラムで起動しようとしています。特定のフォルダを開き、そのフォルダ内の特定のファイルを自動的に選択するには、ウィンドウが必要です。
Objective C、applescript、またはFinderコマンドラインパラメータのいずれかでこれを行う方法を知っている人はいますか?
ありがとう!
Objective-Cバージョン:
NSArray *fileURLs = [NSArray arrayWithObjects:fileURL1, /* ... */ nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
$ open -R <path-to-reveal>
もう1つのAppleScriptフレーバー-Finderのrevealコマンドは、含まれているフォルダへのウィンドウを開き、アイテムを選択します。含まれているフォルダが複数ある場合は、複数のFinderウィンドウが開きます。
tell application "Finder"
to reveal {someAlias, "path/to/POSIXfile" as POSIX file, etc}
Swiftバージョン:
let paths = ["/Users/peter/foo/bar.json"]
let fileURLs = paths.map{ NSURL(fileURLWithPath: $0)}
NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(fileURLs)
ActivateFileViewerSelectingURLsがYosemiteで機能していないことがわかりました(少なくともFinderとは別のスペースにある場合)。 Finderのスペースに切り替わりますが、URLを選択していないようです。使用:
(BOOL)selectFile:(NSString *)fullPath inFileViewerRootedAtPath:(NSString *)rootFullPath
フルスクリーンアプリからスペースを切り替え、パスを選択します。
path
でファイルを開く場合:
NSString* path = @"/Users/user/Downloads/my file"
NSArray *fileURLs = [NSArray arrayWithObjects:[NSURL fileURLWithPath:path], nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
Swift 3.2/4.0バージョン:NSWorkspace.shared.activateFileViewerSelecting([outputFileURL])