是否有 NSOpenPanel 替代方案,或者面板可以在 SwiftUI 中设置不同的样式?

Is there an NSOpenPanel alternative or can the panel be styled differently in SwiftUI?

我问过类似的问题 and at even at the Apple Developer's Forum。似乎要么我的问题有误,要么没有人可以/不想对此主题发表评论。

问题

我想授予对我的应用程序沙箱之外的文件夹的访问权限。我知道我可以用 NSOpenPanel 对话框来做到这一点——弹出一个模式,文件夹是预先选择的,因此是一个空视图,用户应该按 OK按钮。

问题

因为我发现这个 "empty folder view with a random OK button" 不是很友好,我想知道是否有可能

所以我只是弹出一个模式,提醒用户该应用程序需要访问文件夹(将在警报 window 中打印出来),并显示 OK 和一个 取消 按钮。我不想显示系统上的位置、文件夹的空框以及显示的所有其他内容。

澄清一下,这是我的:

这就是我想要的(或类似的东西):

如果有人能告诉我这是否可能,我将不胜感激。至少给我一些参考(到目前为止我找不到任何东西)。

谢谢!

没有。不可能。

NSOpenPanel 和 NSSavePanel 与沙盒应用有着特殊的关系。它们是您应用程序中名为 PowerBox 的应用程序,允许用户选择文件或文件夹以及 return 安全范围 URL 您的代码。

它们在 documentation here

中有描述

因此,如果您不能使用 NSSavePanel/NSOpenPanel API 做到这一点,那么它就无法完成。