MacOS 开发(十三) : 选择和保存文件

1,831 阅读1分钟

一、需求来源

在mac中选择和保存文件的功能是个常见需求。 WechatIMG326.jpeg

二、保存文件示例

@objc func saveFile(_ data: NSData, name: String, allowedFileTypes: [String] = ["jpg","png"]) {
    let panel = NSSavePanel()
    panel.title = "保存文件"
    panel.message = "请选择文件保存地址"
    panel.directoryURL = URL(string: "\(NSHomeDirectory())/Downloads")
    panel.nameFieldStringValue = name
    panel.allowsOtherFileTypes = true
    panel.allowedFileTypes = allowedFileTypes
    panel.isExtensionHidden = false
    panel.canCreateDirectories = true

    panel.begin { (response) in
        if response == .OK {
            if let path = panel.url?.path {
                data.write(toFile: path, atomically: true)
            }
        }
    }
}

三、选择文件示例

@objc func saveFile(_ data: NSData, name: String, allowedFileTypes: [String] = ["jpg","png"]) {
    let panel = NSSavePanel()
    panel.title = "保存文件"
    panel.message = "请选择文件保存地址"
    panel.directoryURL = URL(string: "\(NSHomeDirectory())/Downloads")
    panel.nameFieldStringValue = name
    panel.allowsOtherFileTypes = true
    panel.allowedFileTypes = allowedFileTypes
    panel.isExtensionHidden = false
    panel.canCreateDirectories = true

    panel.begin { (response) in
        if response == .OK {
            if let path = panel.url?.path {
                data.write(toFile: path, atomically: true)
            }
        }
    }
}

NSPanelStudyController