gpt4 book ai didi

swift - 无法将字符串写入 NSSavePanel "ok"函数内的文件

转载 作者:行者123 更新时间:2023-11-30 11:23:05 25 4
gpt4 key购买 nike

出于某种原因,我只能将字符串写入 NSSavePanelok 函数之外的文件。我需要在用户说“好吧,我确实想保存它”时立即编写它。

这是我的代码:

//An IBAction that connects to the "Save" menu item.
@IBAction func SaveButton(_ sender: Any) {
os_log("Save button pressed.")
//Declares savePanel to be equal to NSSavePanel opens the save panel in a seperate window.
let savePanel = NSSavePanel()
savePanel.runModal()

let textEntryController = EntryViewController()


//Sets a placeholder of the text we're going to write.
func ok(_ sender: Any?){

let entryPath = savePanel.url
let entryFieldContents = textEntryController.entryTextField!;
let entryText = (entryFieldContents.textStorage as NSAttributedString?)?.string
let entryContent = entryText
do {
try entryContent?.write(to: entryPath!, atomically: true, encoding: String.Encoding.utf8)
} catch {
// failed to write file – bad permissions, bad filename, missing permissions, or more likely it can't be converted to the encoding
}

}

最佳答案

您应该使用更现代的闭包语法,而不是使用runModal():

let savePanel = NSSavePanel()
savePanel.begin { (response) in
if response == .OK {
// write it here
}
}

关于swift - 无法将字符串写入 NSSavePanel "ok"函数内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51073153/

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