我正在开发一个沙盒OS X应用程序,其中图像保存到用户选择的目录中。用户可以通过两种方式选择输出目录:使用NSOpenPanel选择目录,然后将目录拖放到应用程序中。
当我使用拖放方法时,一切正常,我的文件保存没有问题。
但是,如果我使用NSOpenPanel选择目录,我会收到错误513:
错误513:“您无权将文件'x.jpg'保存在'y'文件夹中。”
NSOpenPanel和拖放代码都将他们选择的URL保存在同一个地方并以相同的方式处理它。有什么可以解释这种差异?是否必须以特定方式设置NSOpenPanel以授予对目录的读/写权限?
为了记录,我在使用我的应用程序的过去一年中从未注意到这个问题,所以它可能是最近对Cocoa的改变 - 但我不是百分之百确定。
答案 0 :(得分:2)
正如所料,看起来我使用的是NSOpenPanel错误。
在$('#lock-crosshair').on('click', function() {
plot.lockCrosshair({
x: 4
});
});
$('#unlock-crosshair').on('click', function() {
plot.unlockCrosshair();
});
中存储来自委托电话的网址。本来应该通过panel(_ sender: AnyObject, validate url: URL)
中的回调来调用面板的网址属性。
答案 1 :(得分:0)
在我的情况下,我错误地将个人文件写入通过将每个文件名连接到URL创建的路径:
panel.directoryURL
将其更改为:
panel.urls.first
...有效。希望这可以节省一些头痛。