Swift

Swift:NSOpenPanelのソースコード

注意:キャンセルを判定しないといけませんでした。

IBActionでfolderpathがクリックされたら、NSOpenPanelでユーザーにフォルダを選択してもらいます。

❶ フォルダ(ディレクトリ)を返してもらう。
❷ キャンセルの時の処理。
❸ NSURLから通常のpathに変換して返り値とする。

func ExecOpenPanelBase() -> String { 
        let NSOpen = NSOpenPanel()            
        NSOpen.allowsMultipleSelection = false   
        NSOpen.canChooseDirectories = true//❶ 
        NSOpen.canCreateDirectories = false   
        NSOpen.canChooseFiles = true   
        let wModal = NSOpen.runModal()  
        if wModal == NSFileHandlingPanelCancelButton { return “” } //❷
        else { }                                
        print(“\(NSOpen.URLs)”) 
        print(“\(NSOpen.URLs[0].pathComponents)”) 
        var wPathArray:[String] = NSOpen.URLs[0].pathComponents!//❸
        var wPath:String    = “”     
        for var inx = 1; inx < wPathArray.count; inx++ {    
            wPath += “/” + String(wPathArray[inx])  
        }    
        return wPath   // == return ==
    }     

参考:Using the Open and Save Panels (Apple)

Categories: Swift, 技術