簡體   English   中英

如何在 ios13 中禁用 pdfkits pdfview 中的查找、共享、轉發菜單項

[英]How to disable look up, share, forward menu items in pdfkits pdfview in ios13

ios13更新以來,覆蓋PDFView類的方法canPerformAction(_ action: Selector, withSender sender: Any?)不再檢測或控制“查找”、“共享”和“轉發”菜單項,我無法弄清楚一種禁用它們的方法。 以前以這種方式覆蓋它會阻止所有菜單項:

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

但是,這只會阻止從 ios13 剪切、復制、粘貼。 有沒有人弄清楚這一點? 如果是這樣,我將非常感謝您的幫助!

我遇到了同樣的問題。 看起來在 iOS13 中,一些操作(菜單和觸摸)被委托給PDFView的屬性documentView 因此,該視圖的方法調配 class 對我有用,但它看起來像一個有效但“骯臟”的黑客。 在我的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
}

找出您選擇的元素屬於什么 class (UITextField、UITextView、UIWebView 等),然后方法調整它的canPerformAction:withSender:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM