[MAC OS] NSOpenPanel 使用
2017-05-24 16:47
92 查看
Mac OS开启沙盒之后,文件的保存会涉及到一个权限问题。如下图,在Capabilities中,可以勾选的权限一共有5种。
User Selected File 必须勾选,否则 NSOpenPanel 无法起来。
![](https://images0.cnblogs.com/i/625506/201404/241514057166175.png)
NSSavePanel
需要保存文档到本地,因为不是Pictures、Music或者Movies,不能使用这几个权限,因此使用NSSavePanel让用户自定义保存路径
NSOpenPanel
这个类继承与NSSavePanel,它可以获取选中的文件夹权限,可以在这个文件夹下,读写文件,追加文件路径进行读写,都可以。在需要一次写入多个文件的时候,应该使用NSOpenPanel这个类。如果只进行单个文件读写操作而言,那么可以使用NSSavePanel,这个类的权限,仅限于当前Panel选中的文件。总结起来就是:NSSavePanel权限针对与选中的单个文件操作,NSOpenPanel权限要大一些,可以拥有文件夹的权限。
User Selected File 必须勾选,否则 NSOpenPanel 无法起来。
![](https://images0.cnblogs.com/i/625506/201404/241514057166175.png)
NSSavePanel
需要保存文档到本地,因为不是Pictures、Music或者Movies,不能使用这几个权限,因此使用NSSavePanel让用户自定义保存路径
NSOpenPanel
这个类继承与NSSavePanel,它可以获取选中的文件夹权限,可以在这个文件夹下,读写文件,追加文件路径进行读写,都可以。在需要一次写入多个文件的时候,应该使用NSOpenPanel这个类。如果只进行单个文件读写操作而言,那么可以使用NSSavePanel,这个类的权限,仅限于当前Panel选中的文件。总结起来就是:NSSavePanel权限针对与选中的单个文件操作,NSOpenPanel权限要大一些,可以拥有文件夹的权限。
@IBAction func showGrantPermissionPanel(_ sender: Any) { print("showGrantPermissionPanel") let openPanel = NSOpenPanel(); openPanel.allowsMultipleSelection = false; openPanel.canChooseDirectories = true; openPanel.canChooseFiles = true; openPanel.message = "本应用需要访问该目录,请点击允许按钮" openPanel.prompt = "允许" openPanel.directoryURL = URL.init(string: NSHomeDirectory()); openPanel.begin(completionHandler: { (result) in if result == NSModalResponseOK { print("ddsskj") } }) }
相关文章推荐
- Mac OS OpenCV安装及终端和Xcode的使用
- 在Mac OS下使用Node.js的简单教程
- Mac OS 环境下 安装 Asp.Net及使用Yeoman 创建Asp.Net 项目
- Mac OS使用技巧之八:Dock栏使用技巧
- MAC OS tcpdump无法使用解决方案 & 如何启用 root 用户
- mac os平台使用python爬虫自动下载巨潮网络文件
- MAC OS的Mail使用教程(2)
- mac os使用lsusb命令和连接未知的Android设备
- Mac OS下,终端下使用pip install *进行到导包后,Eclipse中仍然出现Unresolved错误
- Mac OS下安装ProtocolBuffer与iOS的简单使用
- Mac OS使用技巧之一:查看Finder中的.bash_profile等系统隐藏文件
- Mac OS使用技巧十八:Safari碉堡功能之一制作Widget
- cocoapods无法使用(mac os 10.11升级导致pod: command not found)
- 如何在Mac OS上使用UiAutomator快速调试类
- Mac OS下使用MentoHUST联网后如何建立Wi-Fi热点共享
- elasticsearch初步使用(mac os 10.12.5)
- Mac OS上使用brew安装软件
- MAC OS中使用ll,la命令
- Mac OS终端安装zsh和oh my zsh之后,之前安装的Anaconda3无法使用的解决方法
- 如何使用Valentina Studio连接本地数据库(Mac OS)