How to dismiss keyboard on a UIWebView?

前端 未结 5 388
别那么骄傲
别那么骄傲 2021-01-31 21:05

I am loading an HTML page that has a form. I would like to be able to dismiss the keyboard when the user clicks on GO or if he clicks on the SUBMIT button on the HTML page.

相关标签:
5条回答
  • 2021-01-31 21:46

    A more concise way without needing to know what element is selected is the following:

    [webView stringByEvaluatingJavaScriptFromString:@"document.activeElement.blur()"];
    
    0 讨论(0)
  • 2021-01-31 21:56

    UIGestureRecogniser will help to dismiss the keyboard when user clicks on the WebView. Here is the piece of code i used.

    let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
            tap.delegate = self 
            webView.addGestureRecognizer(tap)
    

    @objc func handleTap(_ sender: UITapGestureRecognizer) { webView?.endEditing(true) }

    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
      return true
    }
    

    Hope the helps.

    0 讨论(0)
  • 2021-01-31 21:57

    You can use javascript to take the focus away from the HTML text field using blur:

    document.foo.bar.myinput.blur();
    
    0 讨论(0)
  • The javascript approach is clever, but this is more direct:

    [webView endEditing:YES];
    
    0 讨论(0)
  • 2021-01-31 22:04

    I'm not so familiar with UIWebView, but normally you would dismiss your keyboard like so...

    [textField resignFirstResponder];
    

    By doing that, the keyboard would be dismissed...

    To have the keyboard be dismissed when say the user clicks the return button, you would need to implement the delegate method.

    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {   
        [textField resignFirstResponder];
        return YES;
    }
    

    Apple's documentation has a full list of methods for the UITextFieldDelegate.

    0 讨论(0)
提交回复
热议问题