MacOS app选择文件目录和文件NSOpenPanel使用swift代码

文章目录

  • 运行效果
  • NSOpenPanel讲解
  • 代码例子
  • [swift代码 demo下载](https://download.csdn.net/download/boildoctor/85143040)

Mac app开发跟ios开发有点区别,网上教程比较少
这个例子是,点击按钮以后,打开选择文件夹的窗口,可以多选文件夹,另一个按钮可以多选文件.然后打印出目录

运行效果

请添加图片描述

NSOpenPanel讲解

首先把2个按钮连线到swift文件中,2个按钮代码如下:
NSOpenPanel 创建对象以后通过 设置属性canChooseDirectories和canChooseFiles实现打开文件或者文件夹
通过block beginSheetModal实现打开文件窗口.

代码例子

  var pathUrls = [URL]()//保存选择所有文件的路径数组//MARK: - 选择文件@IBAction func btnOpenFileClick(_ sender: Any) {let openPanel = NSOpenPanel()openPanel.prompt = "选择"openPanel.canChooseDirectories = false //不允许选择目录openPanel.canChooseFiles = true //选择文件openPanel.allowsMultipleSelection = true//允许多选openPanel.beginSheetModal(for: view.window!) {[unowned self]  result inif result != .OK { //result是点击的结果,如果点击确定result == .OKprint("点击取消")return}//遍历多选的所有路径for url in openPanel.urls{print("路径是=",url.path)}pathUrls = openPanel.urls}}//MARK: - 选择目录@IBAction func btnOpenDirClick(_ sender: Any) {let openPanel = NSOpenPanel()openPanel.prompt = "选择"openPanel.canChooseDirectories = true //openPanel.allowsMultipleSelection = trueopenPanel.canChooseFiles = falseopenPanel.beginSheetModal(for: view.window!) { [unowned self]  result inif result != .OK {print("点击取消")return}//遍历多选的所有路径for url in openPanel.urls{print("路径是=",url.path)}pathUrls = openPanel.urls}}//MARK: - 用finder打开文件所在位置@IBAction func btnOpenPathClick(_ sender: Any) {print("pathUrls=",pathUrls)NSWorkspace.shared.activateFileViewerSelecting(pathUrls)}

swift代码 demo下载


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部