Macos 使用NSOpenPanel保存到沙盒应用程序中的目录不会';不起作用,但拖放起作用
我正在开发一个沙盒OSX应用程序,将图像保存到用户选择的目录中。用户有两种选择输出目录的方法:使用NSOpenPanel选择目录,以及将目录拖放到应用程序上 当我使用拖放方法时,一切正常,我的文件保存时没有任何问题 但是,如果使用NSOpenPanel选择目录,则会出现错误513: 错误513:“您没有权限将文件‘x.jpg’保存在文件夹‘y’中。” NSOpenPanel和拖放代码都将它们选择的URL保持在相同的位置,并以相同的方式进行处理。什么可以解释这种差异?NSOpenPanel是否必须以特定的方式设置以授予目录的读/写权限Macos 使用NSOpenPanel保存到沙盒应用程序中的目录不会';不起作用,但拖放起作用,macos,cocoa,permissions,appstore-sandbox,Macos,Cocoa,Permissions,Appstore Sandbox,我正在开发一个沙盒OSX应用程序,将图像保存到用户选择的目录中。用户有两种选择输出目录的方法:使用NSOpenPanel选择目录,以及将目录拖放到应用程序上 当我使用拖放方法时,一切正常,我的文件保存时没有任何问题 但是,如果使用NSOpenPanel选择目录,则会出现错误513: 错误513:“您没有权限将文件‘x.jpg’保存在文件夹‘y’中。” NSOpenPanel和拖放代码都将它们选择的URL保持在相同的位置,并以相同的方式进行处理。什么可以解释这种差异?NSOpenPanel是否必须
作为记录,我在过去一年使用我的应用程序时从来没有注意到这个问题,所以这可能是最近对Cocoa的一次更改,但我不是100%确定。正如预期的那样,看起来我使用的NSOpenPanel是错误的 在我的例子中,我错误地将我的单个文件写入通过将每个文件名连接到URL创建的路径:
panel.directoryURL
将其更改为:
panel.urls.first
…成功了。希望这可以省去一些麻烦。编辑您的问题并添加代码,显示如何调用
NSOpenPanel
,如何检索结果,以及如何使用该结果创建新URL并访问该URL。这会帮助人们帮助你,也许有人会给你一个答案。