gpt4 book ai didi

swift - NSOpenPanel 作为工作表

转载 作者:IT王子 更新时间:2023-10-29 05:49:04 28 4
gpt4 key购买 nike

我查看了其他答案,但似乎对我的情况没有任何帮助。

我有一个 viewController 类,其中包含一个按钮的 IBAction。此按钮应从该 viewController 打开一个 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,并使用完成 block :

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 - NSOpenPanel 作为工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29596360/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com