[英]Show keyboard on button click by calling WKWebview input field
我一直在搜索有关这个问题的很多东西,没有运气,如何通过单击按钮使iPhone上的键盘显示出来,并将焦点设置在WKWebview输入字段上?
我有这段代码可以初始化按钮并在Swift 3中调用func
let keyBoardButton = UIButton (type: .custom)
keyBoardButton.setImage(UIImage(named: "keyboard.png"), for: UIControlState.normal)
keyBoardButton.addTarget(self, action: #selector(ViewController.showKeyboard), for: UIControlEvents.touchUpInside)
keyBoardButton.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
我称这个功能为
func showKeyboard() {
self.delay { [weak self] in
let javascript = " document.getElementById('myID').focus();"
self?.webView?.evaluateJavaScript(javascript) { [weak self] (result, error) in
if let error = error {
print(error)
} else if let result = result{
print(result)
}
}
}
}
我将焦点放在我的输入字段上,但是我不知道如何显示键盘,有谁可以帮助您?
你可能会需要使用evaluateJavaScript
的方法WKWebView
运行,重点的文本框的页面上一些JavaScript。
javascript将取决于页面,但是可能是这样。
let js = "document.getElementById(\"MY_TEXTFIELD_ID\").focus();"
webView.evaluateJavaScript(js)
编辑:经过更多挖掘后,看来这是WebKit中的已知错误。 https://bugs.webkit.org/show_bug.cgi?id=142757
我遇到了同样的问题
在使用这个好答案将Javascript注入到WebKitView中之后,
document.getElementById('myID').focus();
要么
document.getElementsByClassName('myClass').focus();
将focus()属性添加到您的输入中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.