繁体   English   中英

通过调用WKWebview输入字段在单击按钮时显示键盘

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM