[MAC OS] NSOpenPanel 使用

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

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

[MAC OS] NSOpenPanel 使用_第1张图片

NSSavePanel

需要保存文档到本地,因为不是Pictures、Music或者Movies,不能使用这几个权限,因此使用NSSavePanel让用户自定义保存路径

NSOpenPanel

这个类继承与NSSavePanel,它可以获取选中的文件夹权限,可以在这个文件夹下,读写文件,追加文件路径进行读写,都可以。在需要一次写入多个文件的时候,应该使用NSOpenPanel这个类。如果只进行单个文件读写操作而言,那么可以使用NSSavePanel,这个类的权限,仅限于当前Panel选中的文件。总结起来就是:NSSavePanel权限针对与选中的单个文件操作,NSOpenPanel权限要大一些,可以拥有文件夹的权限。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@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
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/6899775.html如需转载请自行联系原作者

demoblog

你可能感兴趣的:([MAC OS] NSOpenPanel 使用)