NSOpenPanelで初期ディレクトリを指定したいこともあると思います。
そんな時はそのディレクトリの完全パスをString型で作成し、それからURL型を作成して、OpenPanelのdirectoryURLに設定します。
ここで問題になるのがユーザ名を含むユーザディレクトリの取得ですが、私はNSSearchPathForDirectoriesInDomainsでユーザディレクトリを含むパスを取得して、/で
文字列を分解して必要なパスを作成しています。
//ユーザディレクトリが欲しいなら、NSSearchPathDomainMask.userDomainMaskを指定するのが良いかなと思います。 let appDir = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true); //ここでは目的のディレクトリを指定するパスを作るためにユーザディレクトリの直下のライブラリのパスを作っています。 //イメージは「/Users/oboro/Library/」という感じです。 let splitPath = appDir[0].split(separator: "/") var ret = "/" + splitPath[0] + "/" + splitPath[1] + "/" ret = ret + splitPath[2] + "/" //URL型を作ります。 let myURL = URL(fileURLWithPath: ret, isDirectory: true) let op = NSOpenPanel() //ここで初期ディレクトリを設定しています。 op.directoryURL = myURL op.canChooseFiles = true op.canChooseDirectories = false op.allowsMultipleSelection = false op.allowedFileTypes = ["txt", "csv", ""] //オープンパネルを開きます。 if op.runModal() == NSApplication.ModalResponse.OK { //ここに処理を入れます。 self.fileName = (op.url!.absoluteString as! NSString).lastPathComponent }