如何在ios13中的pdfkits pdfview中禁用查找,共享,转发菜单项

ios13 更新以来,覆盖PDFView类的方法 canPerformaction(_ action: Selector,withSender sender: Any?) 不再检测或控制“查找”,“共享”和“转发”菜单项,因此我无法找到禁用它们的方法。 以前以这种方式覆盖它会阻止所有菜单项:

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

但是,这仅阻止从ios13剪切,复制和粘贴。 有人知道吗?如果是这样,我将非常感谢您的帮助!

cqw101 回答:如何在ios13中的pdfkits pdfview中禁用查找,共享,转发菜单项

我遇到了同样的问题。看起来在iOS13中,某些操作(菜单和触摸)被委派给PDFView的属性documentView。因此,该视图类的方法混乱对我来说很有效,但它看起来像是在工作,但“肮脏的” hack。 在我的PDFView子类中,添加了:

private func swizzleDocumentView() {
    guard let d = documentView,let documentViewClass = object_getClass(d) else { return }

    let sel = #selector(swizzled_canPerformAction(_:withSender:))
    let meth = class_getInstanceMethod(object_getClass(self),sel)!
    let imp = method_getImplementation(meth)

    let selOriginal = #selector(canPerformAction(_:withSender:))
    let methOriginal = class_getInstanceMethod(documentViewClass,selOriginal)!

    method_setImplementation(methOriginal,imp)
}

@objc func swizzled_canPerformAction(_ action: Selector,withSender sender: Any?) -> Bool {
   return false
}
,

找出您要选择的元素所属的类(UITextField,UITextView,UIWebView等),然后方法对其canPerformAction:withSender:进行修饰。

本文链接:https://www.f2er.com/3159430.html

大家都在问