如何将NSOpenPanel.URL转换为字符串?

时间:2014-10-31 03:15:20

标签: macos swift

我试图通过Xcode和Swift在OSX中显示一个打开的文件对话框。 然后我想把文件名放在TextField中。

我从

开始
@IBOutlet weak var lblFileName: NSTextField!
@IBAction func FileOpen(sender: AnyObject) {   
    var f:NSOpenPanel = NSOpenPanel()
    f.title = "open that file"
    f.allowsMultipleSelection = false
    f.canChooseDirectories = false
    f.runModal()
    var thefile = f.URLs[0].absoluteString
    println(thefile)
    //failed: lblFileName.stringValue = thefile
    lblFileName.stringValue = "I want this to be the filename!"
}

println(thefile)工作,所以这只是转换URL的问题 变量“thefile”不是字符串,并且所有尝试转换它都失败了。

我确实让它工作了所以我想我也会在这里发布答案。

1 个答案:

答案 0 :(得分:0)

这里是最终工作的代码 注意我创建了一个名为mystring的字符串,不得不使用?而且!让事情发挥作用。 如果有更简单/更好的方式,请在评论中添加!

@IBOutlet weak var lblFileName: NSTextField!
@IBAction func FileOpen(sender: AnyObject) {   
    var f:NSOpenPanel = NSOpenPanel()
    f.title = "open that file"
    f.allowsMultipleSelection = false
    f.canChooseDirectories = false
    f.runModal()
    var thefile = f.URLs[0].absoluteString
    println(thefile)
    var mystring:String? = thefile
    lblFileName.stringValue = mystring!
}