このコードを使用して、プレーン テキスト ファイルをディスクに保存する名前と場所をユーザーが指定できるようにしています。すべてが機能しているように見えますが、保存されたファイルには拡張子がありません。実際、コードのどの部分でも拡張子を指定していません。このオプションを説明している部分に気付かずに NSSavePanel のドキュメントを読みました。
私が使用しているコードは次のとおりです。
let textToExport = mainTextField.textStorage?.string
if textToExport != "" {
let mySave = NSSavePanel()
mySave.begin { (result) -> Void in
if result == NSFileHandlingPanelOKButton {
let filename = mySave.url
do {
try textToExport?.write(to: filename!, atomically: true, encoding: String.Encoding.utf8)
} catch {
// failed to write file (bad permissions, bad filename etc.)
}
} else {
NSBeep()
}
}
}