我正在尝试使用 PDFKit 和 NSViewRepresentable 包装器显示 pdf 文件
以下代码显示灰色框架,而不显示所选 pdf 文件的内容
import SwiftUI
import AppKit
import PDFKit
struct ContentView: View {
@State var pdfURL: URL? = nil
var body: some View {
VStack {
Button {
let panel = NSOpenPanel()
panel.allowsMultipleSelection = false
panel.canChooseDirectories = false
if panel.runModal() == .OK {
if let src = panel.url {
pdfURL = src
}
}
} label: {
Text("Pick a PDF file")
}
PDFKitView(url: pdfURL)
.scaledToFit()
}
.padding()
}
}
#Preview {
ContentView()
}
struct PDFKitView: NSViewRepresentable {
let url: URL?
func makeNSView(context: NSViewRepresentableContext<PDFKitView>) -> PDFView{
let pdfView = PDFView()
if let url = url {
pdfView.document = PDFDocument(url: url)
}
return pdfView
}
func updateNSView(_ nsView: PDFView, context: NSViewRepresentableContext<PDFKitView>) {
}
}
我不明白我做错了什么。这是选择 pdf 文件后的屏幕截图