gpt4 book ai didi

swift - 从崩溃的应用程序中停止 NSPrintOperation

转载 作者:行者123 更新时间:2023-11-28 15:33:02 26 4
gpt4 key购买 nike

我有以下代码行来打印 webView 内容。

let directoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let printOpts: NSDictionary = [NSPrintJobDisposition: NSPrintSaveJob, NSPrintSaveJob: directoryURL, NSPrintScalingFactor: 2.0]
let printInfo = NSPrintInfo(dictionary: printOpts as! [String : AnyObject])

printInfo.horizontalPagination = .autoPagination
printInfo.verticalPagination = .autoPagination

let printOperation = NSPrintOperation(view: webView.mainFrame.frameView, printInfo: printInfo)
printOperation.printPanel.options = [.showsOrientation, .showsPaperSize, .showsPreview, .showsPageSetupAccessory, .showsScaling, .showsPrintSelection]
printOperation.run()

问题在于,当用户与打印操作面板交互时,它有时会导致应用程序崩溃。

enter image description here

如果我只是点击取消按钮,应用程序可能会崩溃。如果我尝试设置不同的比例,它有时会崩溃。我不知道为什么应用程序会崩溃。它总是最后一行。我究竟做错了什么?谢谢。

enter image description here

最佳答案

.showsCopies 在选项中 时,打印面板代码中存在错误。它有一个与副本相关的 subview 的释放后使用错误。它将它们从 View 层次结构中移除,允许它们被释放。但是,它保留对文本字段的悬空引用,并尝试在各种情况下对其进行操作。例如,它有时会尝试使其成为第一响应者。

基本上,您永远不应该试图隐藏 Copies 字段。

关于swift - 从崩溃的应用程序中停止 NSPrintOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580419/

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