WKWebView和UIMenuController

我有一个WKWebView的应用程序。 在这个应用程序中,我定制了UIMenuController提供的选项。 networking视图似乎添加复制和定义选项菜单,不pipe我做什么。 如果我将自己设置为第一响应者,并返回NO,我仍然可以复制并定义选项。 而且我已经实现了自己的复制选项,根据用户的喜好和确切的select来做特殊的事情。 有没有办法删除这些额外的选项?

更新 :我已经提交了这个雷达18487289。

对于iOS 11,简单地WKWebView并覆盖canPerformAction以返回false

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

对于iOS 10或更早版本, WKContentViewcanPerformAction方法:

 @objc private extension UIResponder { func swizzle_canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { return false } } guard let viewClass = NSClassFromString("WKContentView") as? UIView.Type else { return } method_exchangeImplementations( class_getInstanceMethod(viewClass, #selector(UIResponder.canPerformAction))!, class_getInstanceMethod(UIResponder.self, #selector(UIResponder.swizzle_canPerformAction))! ) 

删除这些Web视图的内置菜单项后,可以像通常一样通过UIMenuController.shared添加自定义菜单项。