2017-06-21 106 views
0

我一直在尋找很多關於這個問題,我沒有任何運氣,我如何使鍵盤上的iPhone顯示通過單擊按鈕,並將焦點設置在WKWebview輸入字段?顯示鍵盤按鈕點擊調用WKWebview輸入字段

我有這樣的代碼初始化一個按鈕,並在迅速3

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和我打電話此FUNC

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) 
      } 

     } 
    } 
} 

我設置了專注於我的輸入字段,但我不知道如何顯示鍵盤,任何人都可以提供幫助?

回答

0

您需要在WKWebView上使用evaluateJavaScript方法在專注於文本字段的頁面上運行一些javascript。

JavaScript將取決於頁面,但它可能是這樣的。

let js = "document.getElementById(\"MY_TEXTFIELD_ID\").focus();" 
webView.evaluateJavaScript(js) 

編輯:一些更多的挖掘後,看來這是在WebKit的已知錯誤。 https://bugs.webkit.org/show_bug.cgi?id=142757

+0

我已經嘗試過,但那不足以顯示鍵盤。 – rijoh

+0

你知道如何調出鍵盤嗎?因爲這只是重點。 – rijoh

+0

我更新了我的帖子,看起來這是一個已知的錯誤。 –

0

我碰到了同樣的問題

使用該 Great Answer注入Javascript腳本到您的WebKitView,只是用

document.getElementById('myID').focus(); 

document.getElementsByClassName('myClass').focus(); 

添加焦點後( )屬性