2016-04-05 20 views
0

Ich versuche, den Benutzer eine Datei aus einem Ordner auszuwählen, der Protokolldateien enthält. Daher möchte ich einen NSOpenDialog anzeigen, der den Inhalt dieses Ordners zeigt. Ich benutze Swift, also 10.9+Festlegen des Anfangsverzeichnisses für NSOpenPanel

Ich sehe eine Reihe von Themen zu diesem Thema hier, aber trotz der Versuch, was scheint, um den gleichen Code in Swift konvertiert werden, wird es immer in den Ordner Dokumente zurück. Hier ist ein Beispiel:

let fd: NSOpenPanel = NSOpenPanel() 
    fd.directoryURL = NSURL.fileURLWithPath("~/LauncherLogs", isDirectory: true) 
    fd.canChooseDirectories = false 
    fd.canChooseFiles = true 
    fd.allowedFileTypes = ["log"] 
    fd.runModal() 

Der betreffende Ordner nicht vorhanden ist, und kopieren und den Weg in die Go Einfügen zum Ordner ... in den Finder direkt dort geht. Irgendwelche Ideen?

+1

Ich gehe stark davon aus, dass Sie die Tilde auf den tatsächlichen Pfad erweitern müssen ... –

Antwort

2

Sie benötigen die tilde und NSString hat eine Hand Methode für diese so erweitern:

für Martin
let launcherLogPathWithTilde = "~/LauncherLogs" as NSString 
    let expandedLauncherLogPath = launcherLogPathWithTilde.stringByExpandingTildeInPath 
    fd.directoryURL = NSURL.fileURLWithPath(expandedLauncherLogPath, isDirectory: true) 

+1 upvote für sie zu erwähnen.

+0

Und das ist, was Sie für die Annahme "NSURL.fileURLWithPath" würde Erweiterungen tun ... * seufz * –

+0

Ich erinnere mich an meinen Kopf gegen die Wand mit diesem auch! Als benutzerfreundliche Apple-Geräte und -Systeme sind sie sicherlich nicht entwicklerfreundlich und bestenfalls extrem abstrakt. –