【发布时间】:2017-06-26 06:47:00
【问题描述】:
一旦用户选择文本,我想实现我的自定义 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 操作,因此这些人不会被删除。
【问题讨论】:
-
你找到解决办法了吗?
-
不幸的是没有
标签: wkwebview uimenucontroller