1

上下文 我正在编写一个允许用户选择文件夹,然后扫描它们以查找文件的应用程序。该文件夹可以在用户的​​机器、iCloud 或外部存储上。该应用程序将这些文件和源文件夹的详细信息保存到一个文档中,因此用户可以在将来访问这些文件并重新扫描源文件夹。该应用程序是使用 MacOS 和 iPad 的 SwiftUI 框架编写的。

问题 鉴于这是一个沙盒应用程序,我需要创建安全范围的书签,以便能够访问已保存到文档中的文件夹。我有两个问题:

  1. 使用 ReferenceFileDocument 协议时,如何创建文档范围的书签。我需要文档的 URL,但我永远无法访问它。我想在实现 fileWrapper 函数时实现这样的目标(裸骨示例):
func fileWrapper(快照:MyDocument,配置:WriteConfiguration)抛出-> FileWrapper {
:
// 其他代码
:
let bookmarkDataToPersist = snapshort.someFileURL.bookmarkData(options: .withSecurityScope,包括ResourceValuesForKeys: nil, relativeTo: documentURL)
:
// 添加 bookmarkDataToPersist 到 fileWrapper 的其他代码
}
  1. 理想情况下,用户将能够:
  • 将外部驱动器连接到他们的 Mac
  • 选择该驱动器上的文件夹
  • 保存文档,这会将书签保存到该文件夹​​的 URL
  • 将文档发送到 iPad(通过电子邮件或 iCloud 驱动器)
  • 使用 iPad 版 App 打开文档
  • 将外部书签连接到 iPad
  • 从文件夹中重新扫描文档中标记为书的文件夹

但是考虑到 1) 中的问题以及文档书签不能指向文件夹的事实,有没有办法?

任何想法或建议都将受到欢迎。

4

0 回答 0