Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用NSOpenPanel保存到沙盒应用程序中的目录不会';不起作用,但拖放起作用_Macos_Cocoa_Permissions_Appstore Sandbox - Fatal编程技术网

Macos 使用NSOpenPanel保存到沙盒应用程序中的目录不会';不起作用,但拖放起作用

Macos 使用NSOpenPanel保存到沙盒应用程序中的目录不会';不起作用,但拖放起作用,macos,cocoa,permissions,appstore-sandbox,Macos,Cocoa,Permissions,Appstore Sandbox,我正在开发一个沙盒OSX应用程序,将图像保存到用户选择的目录中。用户有两种选择输出目录的方法:使用NSOpenPanel选择目录,以及将目录拖放到应用程序上 当我使用拖放方法时,一切正常,我的文件保存时没有任何问题 但是,如果使用NSOpenPanel选择目录,则会出现错误513: 错误513:“您没有权限将文件‘x.jpg’保存在文件夹‘y’中。” NSOpenPanel和拖放代码都将它们选择的URL保持在相同的位置,并以相同的方式进行处理。什么可以解释这种差异?NSOpenPanel是否必须

我正在开发一个沙盒OSX应用程序,将图像保存到用户选择的目录中。用户有两种选择输出目录的方法:使用NSOpenPanel选择目录,以及将目录拖放到应用程序上

当我使用拖放方法时,一切正常,我的文件保存时没有任何问题

但是,如果使用NSOpenPanel选择目录,则会出现错误513:

错误513:“您没有权限将文件‘x.jpg’保存在文件夹‘y’中。”

NSOpenPanel和拖放代码都将它们选择的URL保持在相同的位置,并以相同的方式进行处理。什么可以解释这种差异?NSOpenPanel是否必须以特定的方式设置以授予目录的读/写权限


作为记录,我在过去一年使用我的应用程序时从来没有注意到这个问题,所以这可能是最近对Cocoa的一次更改,但我不是100%确定。

正如预期的那样,看起来我使用的NSOpenPanel是错误的 在我的例子中,我错误地将我的单个文件写入通过将每个文件名连接到URL创建的路径:

panel.directoryURL
将其更改为:

panel.urls.first

…成功了。希望这可以省去一些麻烦。

编辑您的问题并添加代码,显示如何调用
NSOpenPanel
,如何检索结果,以及如何使用该结果创建新URL并访问该URL。这会帮助人们帮助你,也许有人会给你一个答案。