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

标签 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”不是字符串,所有尝试转换它的尝试都失败了。

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

最佳答案

这是最终运行的代码 注意我创建了一个名为 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!
}

关于macos - 如何将 NSOpenPanel.URL 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26667023/

相关文章:

macos - 在 Mac OSX 10.9.5 上安装 Scrapy

macos - 在我的 mac 上找不到 openssl.cnf 文件

macos - Git log --pretty=oneline 似乎省略了前 2 次提交

macos - 为什么Docker Toolbox在Mac 10.10.5上不起作用?

iOS:查找当前位置的语言

ios - 如何检测 iOS 中的文本(字符串)语言?

ios - Slack slash 命令导致来自 iOS 应用程序或 MacOS 应用程序的不同编码

swift - 假设已设置边界,则初始化 UIView 中的变量

ios - 在 Swift 中定位用户位置

ios - 将重复消息存储在 XMPPMessageArchiving_Message_CoreDataObject 中(单聊)