Swift NSOpenPanel as板材
我环顾了一下其他的答案,但似乎没有什么对我的情况有帮助 我有一个viewController类,它包含一个按钮的iAction。此按钮应将NSOpenPanel作为图纸从该viewController打开:Swift NSOpenPanel as板材,swift,nsopenpanel,Swift,Nsopenpanel,我环顾了一下其他的答案,但似乎没有什么对我的情况有帮助 我有一个viewController类,它包含一个按钮的iAction。此按钮应将NSOpenPanel作为图纸从该viewController打开: class ViewController: NSViewController { @IBAction func folderSelection(sender: AnyObject) { var myFiledialog: NSOpenPanel = NSOpenPanel()
class ViewController: NSViewController {
@IBAction func folderSelection(sender: AnyObject) {
var myFiledialog: NSOpenPanel = NSOpenPanel()
myFiledialog.prompt = "Select path"
myFiledialog.worksWhenModal = true
myFiledialog.allowsMultipleSelection = false
myFiledialog.canChooseDirectories = true
myFiledialog.canChooseFiles = false
myFiledialog.resolvesAliases = true
//myFiledialog.runModal()
myFiledialog.beginSheetModalForWindow(self.view.window!, completionHandler: nil)
var chosenpath = myFiledialog.URL
if (chosenpath!= nil)
{
var TheFile = chosenpath!.absoluteString!
println(TheFile)
//do something with TheFile
}
else
{
println("nothing chosen")
}
}
}
问题来自myFileDialog.beginSheetModalForWindow(..),它与上面的行一起工作,但这不是图纸效果您需要从窗口上的面板调用
beginSheetModalForWindow
,并使用完成块:
let myFiledialog = NSOpenPanel()
myFiledialog.prompt = "Select path"
myFiledialog.worksWhenModal = true
myFiledialog.allowsMultipleSelection = false
myFiledialog.canChooseDirectories = true
myFiledialog.canChooseFiles = false
myFiledialog.resolvesAliases = true
myFiledialog.beginSheetModalForWindow(window, completionHandler: { num in
if num == NSModalResponseOK {
let path = myFiledialog.URL
print(path)
} else {
print("nothing chosen")
}
})
Swift 5
let dialog=NSOpenPanel()
dialog.beginSheetModal(用于:self.view.window!){结果
如果result=.OK,则让url=dialog.url{
打印(“获取”,url)
}
}