По какой-то причине я могу записать строку в файл только вне функции NSSavePanel
ok
. Мне нужно написать это, как только пользователь скажет: «Хорошо, я хочу сохранить это».
Вот мой код:
//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
}
}