• [MAC OS] NSOpenPanel 使用


    Mac OS开启沙盒之后,文件的保存会涉及到一个权限问题。如下图,在Capabilities中,可以勾选的权限一共有5种。

    User Selected File 必须勾选,否则 NSOpenPanel 无法起来。

    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")
                }
            })
        }
    

      

  • 相关阅读:
    ES6中的类
    promise小案例
    Promise.resolve()与Promise
    Promise.resolve( data)与Promise.reject( data )
    Promise.race()
    Promise.all()
    咦?浏览器又崩了?再试试这个呢!
    页面太卡了?试试这方法呢!
    js进阶之重复的定时器
    关于vue+element-ui项目的分页,返回默认显示第一页的问题解决
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/6899775.html
Copyright © 2020-2023  润新知