Sometimes I will use NSSavePanel. However, every time I use it, I have to how to using it. Here is the best practice so next time I will not have to look the docs up.
@objc func exportXliffFile(_ sender: Any?) {
let exportPanel = NSSavePanel()
exportPanel.prompt = NSLocalizedString("Export", comment: "")
exportPanel.allowedFileTypes = ["xliff"]
let xliffURL = (NSApp.delegate as? AppDelegate)?.xliffURL
exportPanel.directoryURL = xliffURL
exportPanel.nameFieldStringValue = xliffURL!.lastPathComponent
exportPanel.beginSheetModal(for: view.window!) { [unowned self] (response) in
if response == .OK {
self.save(to: exportPanel.url!)
}
}
}
About code is from my open source app Xliff Tool.
Others
https://developer.apple.com/documentation/appkit/nssavepanel/1534419-allowedfiletypes#