Mac OS开启沙盒之后,文件的保存会涉及到一个权限问题。如下图,在Capabilities中,可以勾选的权限一共有5种。
User Selected File 必须勾选,否则 NSOpenPanel 无法起来。
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