2013-01-06 6 views
6

Dies funktioniert in 10.7 aber nicht in 10.8. Wie bekomme ich das in Mountain Lion?Im Finder nicht anzeigen funktioniert in 10.8

-(IBAction)showTargetInFinder:(id)sender 
{ 

    NSString *linkPath = [targetField stringValue]; 
    NSWorkspace *ws = [NSWorkspace sharedWorkspace]; 
    [ws selectFile:linkPath inFileViewerRootedAtPath:nil]; 

} 
+0

Sie mit Pedro Vieira Lösung gehen sollte, da URLs anstelle von Pfaden Der Weg nach vorn allgemein, aber eine andere Sache zu versuchen (wenn nur aus Neugierde) würde sein, die pfadbasierte Methode mit '@" "' für den Dateibetrachter root zu verwenden, anstatt 'nil'. [Die Erklärung der Dokumentation] (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWorkspace/selectFile: inFileViewerRootedAtPath :) ist ziemlich archaisch, aber das Wesentliche ist, dass '@" "' der nützlichere Root-Wert ist. –

Antwort

7

Verwenden Sie diesen Code statt:

NSURL *fileURL = your file URL; 
NSArray *fileURLs = [NSArray arrayWithObjects:fileURL, nil]; 
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs]; 

Dies funktioniert auf 10.6+. Wenn Sie mehr als eine Datei im Finder anzeigen und auswählen möchten, fügen Sie einfach weitere NSURLs zum Array hinzu und Sie können loslegen.

+0

Kühl. Danke, Pedro. – Paul

+0

Kein Problem! Froh, dass ich helfen konnte! –

+2

Alternativ, anstatt NSArray zu bitten, ein Array für Sie zu erstellen, verwenden Sie ein Array-Literal: '[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs: @ [fileURL]]' –

0

Aus Sicht der Sicherheitsüberprüfung: Wenn der Benutzer, der den Prozess ausführt, der den [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[ fileURL ]]-Aufruf ausführt, keine Lese-/Sichtberechtigungen für fileURL hat, wird die Methode scheinbar "nicht funktionieren".

Um festzustellen, ob dies Ihr Problem (Stand OS X 10.10.3) ist, überprüfen Sie die Konsole für Protokolle wie folgt aus:

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