gpt4 book ai didi

macos - 使用 NSOpenPanel 保存到沙盒应用程序中的目录不起作用,但拖放可以

转载 作者:行者123 更新时间:2023-12-03 16:20:07 25 4
gpt4 key购买 nike

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

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

但是,如果我使用 NSOpenPanel 选择目录,则会收到错误 513:

Error 513: "You don't have permission to save the file 'x.jpg' in the folder 'y'."

NSOpenPanel 和拖放代码都将其选择的 URL 保留在同一位置并以相同的方式处理它。造成这种差异的原因是什么?是否必须以特定方式设置 NSOpenPanel 才能授予目录读/写权限?

郑重声明,在过去一年使用我的应用程序时我从未注意到这个问题,因此这可能是 Cocoa 最近的一项更改 - 但我对此并不能 100% 确定。

最佳答案

正如预期的那样,看起来我错误地使用了 NSOpenPanel。 😐

panel(_ sender: AnyObject, validate url: URL) 中存储委托(delegate)调用的 URL。应该从 begin(completionHandler handler: (Int) -> Swift.Void) 中的回调调用面板的 URL 属性。

关于macos - 使用 NSOpenPanel 保存到沙盒应用程序中的目录不起作用,但拖放可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35641353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com