一旦用户选择文本,我想实现我的自定义MenuController。我使用下面的代码来做到这一点,我将WKWebview子类化并在
下面实现override init(frame: CGRect, configuration: WKWebViewConfiguration) {
super.init(frame: frame, configuration: WKWebViewConfiguration())
enableCustomMenu()
}
func enableCustomMenu() {
let menuController = UIMenuController.shared
let testmenu = UIMenuItem(title: "Test", action: #selector(test))
menuController.menuItems = [testmenu]
}
func test(){
var text = ""
self.evaluateJavaScript("document.getSelection().toString()") { (data, error) in
text = data as! String
}
print(text)
}
override func becomeFirstResponder() -> Bool {
return true
}
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
switch action {
case #selector(test):
return true
default:
return false
}
}
以前这适用于UIWebview
,但在WKWebview
,canPerformAction
我们不再采取copy, lookup and share
行动,因此这些人不会被删除。
答案 0 :(得分:0)
我也有这个问题,我发现你可以通过覆盖函数 canPerformAction
来自定义你的 WKwebview
这是关于它的article。
它对我有用! 希望能帮到你。