gpt4 book ai didi

swift - 如何使用 cocoa swift 显示 pdf(版本 3.1)

转载 作者:行者123 更新时间:2023-11-30 12:08:32 25 4
gpt4 key购买 nike

我正在尝试为 mac(不是 IOS)制作一个 PDF 查看器来完成作业,但我什至不知道如何让 PDF 真正显示出来。我们必须使用 PDFView 和 Quartz。我见过的关于这个主题的大多数教程都使用类似的内容:

view.setDocument(pdf)

但是 swift 说 PDFView 没有成员 setDocument。我查看了文档here唯一看起来可行的就是 setCurrentSelection 所以我尝试了:

import Cocoa
import Quartz

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
@IBOutlet weak var PDFV: PDFView!


func applicationDidFinishLaunching(_ aNotification: Notification) {

let fileURL:URL = (Bundle.main.url(forResource: "example", withExtension: "pdf")! as NSURL) as URL
let pdfDocument:PDFDocument = PDFDocument.self.init(url: fileURL as URL)!
let thing:PDFSelection = PDFSelection.self.init(document: pdfDocument)
PDFV.setCurrentSelection(thing, animate: true)
// Insert code here to initialize your application
}

func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
}

但是当我运行它时,这会导致窗口崩溃并且 xcode 说:线程 1:EXC_BAD_INSTRUCTION(代码 = EXC_I386_INVOP,子代码 0x0)。有谁知道我实际上要使用什么?

最佳答案

确实没有setDocument方法,但是有一个document您可以使用的属性:

guard let pdfURL = Bundle.main.url(forResource: "test", withExtension: "pdf")
else { fatalError("PDF not found") }

guard let pdfDocument = PDFDocument(url: pdfURL)
else { fatalError("PDF document not created") }

pdfView.document = pdfDocument

此外,无需将 URL 转换为 NSURL,然后再转换回 URL。

关于swift - 如何使用 cocoa swift 显示 pdf(版本 3.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46376540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com