2010-01-04 21 views

Antwort

33

Wenn ich Ihre Frage verstehe, möchten Sie den Ordner, in dem etwas im Finder gespeichert wurde, öffnen?

Dies sollte den Trick machen - es nimmt an, dass Sie einen Verweis auf das savePanel haben.

NSURL *fileURL = [savePanel URL]; 
NSURL *folderURL = [fileURL URLByDeletingLastPathComponent]; 
[[NSWorkspace sharedWorkspace] openURL: folderURL]; 

Wenn Sie mit einem NSString beginnen, den Pfad enthält, dann beginnen Sie mit:

NSURL *fileURL = [NSURL fileURLWithPath: stringContainingPath]; 
28

Noch besser wäre, den Ordner nicht nur zu öffnen, sondern die gespeicherte Datei ausgewählt. NSWorkspace kann das für Sie tun:

[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[ URLToSavedFile ]]; 

Das Argument ist ein Array von URLs, also, wenn Sie nur eine Datei haben Sie offenbaren möchten, können Sie einfach ein Array von einem Objekt übergeben.

Wenn aus irgendeinem Grund, sind Sie eine Version von Mac OS X Targeting älter als 10,6, dann würden Sie die ältere pfadbasierte Methode verwenden statt:

[[NSWorkspace sharedWorkspace] selectFile:pathToSavedFile inFileViewerRootedAtPath:@""]; 

(Sie wollen eine leere passieren Zeichenfolge für das zweite Argument, so dass der Finder ein vorhandenes Finder-Fenster für den Ordner wieder verwenden, wenn es einen gibt.)

4

ich weiß, dass dieser Beitrag ziemlich alt ist, aber mit 10,9, was wollen Sie tun

NSString* folder = @"/path/to/folder" 
[[NSWorkspace sharedWorkspace]openFile:folder withApplication:@"Finder"]; 
Verwandte Themen