所以我一直在试图将一个小的SwiftUI iPad应用程序“移动”到Mac中,但我在UIDocumentPickerViewController
方面遇到了一些困难。
我已经像下面这样在UIViewControllerRepresentable
中包装了UIDocumentPickerViewController
:
struct DocumentPickerView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIDocumentPickerViewController {
let documentPicker = UIDocumentPickerViewController(documentTypes: [(kUTTypeImage as String)], in: .import)
return documentPicker
}
func updateUIViewController(_ uiViewController: UIDocumentPickerViewController, context: Context) {
}
}
并像这样显示:
struct ContentView: View {
@State var shows = false
var body: some View {
Button(action: { self.shows.toggle() }) {
Text("Select File")
}
.sheet(isPresented: self.$shows) {
DocumentPickerView()
}
}
}
但是在Mac上,UIDocumentPickerViewController
无法显示,我们只能看到这个空白的模态框:
let controller = UIDocumentPickerViewController(url: tempURL, in: .moveToService) controller.delegate = self if let presentedViewController = self.presentedViewController { // let the ContentView present the self.modalSelection = .save presentedViewController.present(controller, animated: true) }
- jogga