uimenucontroller - PDFKit 错误,需要禁用 UIMenuItems

标签 uimenucontroller ios-pdfkit apple-pdfkit

我正在尝试禁用 PDFKit 中的 UIMenuItems。我已经实现了

override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
    return false
}

但是 MenuItems CopySelect All 仍然有效。我想禁用它们的主要原因是 全选 在较大的 pdf 文档上会导致致命的内存错误。

malloc: can't allocate region

我已经提交了错误报告,但同时我需要禁用菜单项。

注意:如果 pdfDocument.string 足够大,以下任何调用都会导致崩溃。

  1. pdfView.selectAll()
  2. UIMenuController.selectAll
  3. 让字符串 = pdfDocument.string

最佳答案

我需要覆盖实际 PDFView 上的 canPerformAction。我是在我的 VC 中做的。

class MyPDFView: PDFView {
    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        return false
    }
}

关于uimenucontroller - PDFKit 错误,需要禁用 UIMenuItems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56153830/

相关文章:

iphone - UIMenuController和响应者链: what's going on?

ios - 将 pdf 文档保存到 iOS 文件应用程序时如何指定文件名?

ios - 使用 UIGraphicsPDFRenderer 创建 PDF 时添加像 "page x of y"这样的页脚

ios - 使用 Swift 5 - PDFKit 在 iOS 中编辑和保存现有的 pdf 文档

swift - PDFKit 的scaleFactorForSizeToFit 无法在 SwiftUI (UIViewRepresentable) 中设置缩放

ios - 使用 swift 从 TextView 中选择文本后显示副本

ios - 从 UIMenuController 中删除自定义菜单项

ios - PDFKit - PDFPageOverlayViewProvider 与 PKCanvasView 不转发触摸事件 - WWDC22 session 10089

ios - 如何为非基于文本的内容创建 UIMenuController?

ios - 如何使用 PDFKit 突出显示 pdf 中选定的文本?