如何从Webview的键盘获取完成按钮操作

时间:2017-06-21 08:58:36

标签: ios swift uiwebview

我在UIWebview中有一个文本字段。按下完成按钮时,键盘不会隐藏并继续显示在视图上方。我想在按下完成按钮时关闭键盘。有没有办法在我的swift代码中完成按钮操作?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

通过UIWebview中的textfield,我把它作为UITextField作为UIWebview中的子视图吧? 在这种情况下你只需要在你的类中实现UITextFieldDelegate,特别是这个委托方法textFieldShouldReturn,只要点击完成按钮就会调用它,所以基本上你会有这样的东西:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
       if (textField == correctTextField) {
           textField.resignFirstResponder()
        }
        return true
    }

显然你需要首先将该控制器指定为textField委托

但据说它不是本地文本字段,而是一个html或webcontent的某种部分然后我会做什么,我会让它调用一个特殊的方案的请求,例如“hideKeyboard”,我会实现uiwebviewdelegate并测试该方案,以便在我对其进行包装时隐藏键盘,这里是一个例子:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
 navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *URL = [request URL];
    NSString *scheme = [URL scheme];
    if ([scheme isEqualToString:@"hideKeyboard"]) {
      [self.view endEditing:true];
    }
}