目标:使用 SwiftUI .fileImporter 修饰符加载 USD 文件。
根据 Apple 文档,USD 是带有 .fileImporter 修饰符的受支持的 uttype。 https://developer.apple.com/documentation/uniformtypeidentifiers/uttype。 https://developer.apple.com/documentation/uniformtypeidentifiers/uttype/3551587-usd
我尝试了下面的代码,但它不起作用。有人设法让这个工作吗?
import SwiftUI
struct ContentView: View {
@State var openFile = false
@State var usdFile = Data()
@State var fileName = ""
var body: some View {
Form {
//import USD
Button(action: {
self.openFile.toggle()
}){
Text(fileName)
}
}
.navigationTitle("File Importer")
//file importer
.fileImporter(isPresented: $openFile, allowedContentTypes: [.usd]) { (res) in
do{
let fileUrl = try res.get()
print(fileUrl)
self.fileName = fileUrl.lastPathComponent
print(fileName)
if let usdFile = try? Data(contentsOf: fileUrl),
fileUrl.stopAccessingSecurityScopedResource()
} catch{
print ("error reading")
print (error.localizedDescription)
}
}
}
}