gpt4 book ai didi

ios - 如何在 iOS 13 的 pdfkit pdfview 中禁用查找、共享、转发菜单项

转载 作者:行者123 更新时间:2023-12-01 22:09:20 25 4
gpt4 key购买 nike

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

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

然而,这只会阻止从 ios13 剪切、复制、粘贴。有没有人想出这个?如果是这样,我将非常感谢您的帮助!

最佳答案

我遇到了同样的问题。看起来在 iOS13 中一些操作(菜单和触摸)被委托(delegate)给 PDFView 的属性 documentView。因此,该 View 类的方法调配对我有用,但它看起来像是一个有效但“肮脏”的 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
}

关于ios - 如何在 iOS 13 的 pdfkit pdfview 中禁用查找、共享、转发菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58711982/

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