我试图指示 .fileImporter 在特定目录中启动(该应用程序具有用户选择的文件读/写文件访问权限),已经创建了展示该行为的简单游乐场:
import SwiftUI
import PlaygroundSupport
struct FileOpenExample : View {
@State private var fileDialogPresented: Bool = false
private var initialDirectory: URL = URL(fileURLWithPath: "/Users/myuser/Library/Application%20Support/com.mydomain.myapp")
var body: some View {
Button {
fileDialogPresented = true
} label: {
Text("Select File")
}
.fileDialogDefaultDirectory(initialDirectory)
.fileImporter(isPresented: $fileDialogPresented, allowedContentTypes: [.utf8PlainText]) { result in
}
}
}
let sampleView = FileOpenExample()
PlaygroundPage.current.setLiveView(sampleView)
它在 Playground 或我的应用程序中的行为类似,基本上打开到应用程序的运行位置,而不是我指定的 URL(我指定的 URL 处的目录确实存在)
我尝试将
.fileDialogDefaultDirectory
放在 .fileImporter
的上方和下方,但无济于事。 Apple 文档是正确/完整的,但没有提供太多指导或如何正确使用它的示例。 建议?
尝试在
.fileDialogDefaultDirectory
之后移动.fileImporter
,例如:
.fileImporter(isPresented: $fileDialogPresented, allowedContentTypes: [.utf8PlainText]) { result in
print("\n---> result: \(result)\n")
}
.fileDialogDefaultDirectory(initialDirectory) // <--- here