Iphone 如何关闭UIWebView上的键盘?

Iphone 如何关闭UIWebView上的键盘?,iphone,objective-c,cocoa-touch,uiwebview,Iphone,Objective C,Cocoa Touch,Uiwebview,我正在加载一个包含表单的HTML页面。我希望能够在用户单击GO或单击HTML页面上的SUBMIT按钮时关闭键盘 如果用户决定不填写表单,我还需要一种方法来关闭键盘 不知道怎么做。我对UIWebView不太熟悉,但通常你会像这样关闭键盘 [textField resignFirstResponder]; 如果这样做,键盘将被丢弃 要在用户单击return按钮时取消键盘,您需要实现委托方法 - (BOOL)textFieldShouldReturn:(UITextField *)textField

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

如果用户决定不填写表单,我还需要一种方法来关闭键盘


不知道怎么做。

我对UIWebView不太熟悉,但通常你会像这样关闭键盘

[textField resignFirstResponder];
如果这样做,键盘将被丢弃

要在用户单击return按钮时取消键盘,您需要实现委托方法

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

苹果的文档中有一个完整的UITextFieldDelegate方法列表

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

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

无需知道所选元素的更简洁方法如下:

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

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

[webView endEditing:YES];

当用户单击WebView时,UIgestureRecognitor将帮助关闭键盘。这是我使用的一段代码

let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
        tap.delegate = self 
        webView.addGestureRecognizer(tap)
@objc func handleTap(\发送方:UITapgestureRecognitizer){ webView?.endEditing(真) }


希望有帮助。

不幸的是,UIWebView没有像UITextField这样的委托方法。还有其他想法吗?也许你的问题在这里得到了回答。。。这种方法根本不适用于UIWebView。请参阅上面我的答案以获得解决方案。另外,请检查:请注意,如果您在iPad上使用演示样式
UIModalPresentationFormSheet
演示模式视图,则此选项将不起作用。这是预期的iOS行为-请参阅:。您从何时/何处调用此操作?
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
  return true
}