如何在UIWebView上关闭键盘?

时间:2010-04-01 19:46:33

标签: iphone objective-c cocoa-touch uiwebview

我正在加载一个包含表单的HTML页面。我希望能够在用户点击GO或点击HTML页面上的SUBMIT按钮时关闭键盘。

如果用户决定他不想填写表格,我还需要一种方法来解雇键盘。

不知道该怎么做。

5 个答案:

答案 0 :(得分:34)

更简洁的方法,无需知道选择了哪个元素如下:

[webView stringByEvaluatingJavaScriptFromString:@"document.activeElement.blur()"];

答案 1 :(得分:29)

javascript方法很聪明,但这更直接:

[webView endEditing:YES];

答案 2 :(得分:11)

您可以使用javascript将焦点从HTML文本字段中移开:

document.foo.bar.myinput.blur();

答案 3 :(得分:1)

当用户单击WebView时,

UIGestureRecogniser将帮助关闭键盘。这是我使用的代码。

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

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

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

希望有帮助。

答案 4 :(得分:-11)

我对UIWebView并不熟悉,但通常会像你这样关掉你的键盘......

[textField resignFirstResponder];

通过这样做,键盘将被解雇......

要说当用户点击返回按钮时关闭键盘,您需要实现委托方法。

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

Apple的文档包含UITextFieldDelegate的完整方法列表。