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

标签 ios swift uiwebview

我在 UIWebview 中有一个文本字段。当按下完成按钮时,键盘不会隐藏并继续显示在 View 上。每当按下完成按钮时,我都想关闭键盘。有什么方法可以在我的 swift 代码中完成按钮操作吗?

我们将不胜感激。

最佳答案

通过 UIWebview 内的文本字段,我将其作为 UITextField 作为 UIWebview 内的 subview ,对吧? 在这种情况下,你只需要在你的类中实现 UITextFieldDelegate,特别是这个委托(delegate)方法 textFieldShouldReturn,只要点击完成按钮就会调用它,所以基本上你会有这样的东西:

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

显然,您首先需要将该 Controller 指定为 textField 委托(delegate)

但据说它不是 native 文本字段而是 html 或网络内容的某种部分然后我会做什么,我会让它调用一个带有特殊方案的请求,例如“hideKeyboard”,我会实现 uiwebviewdelegate 并测试该方案以在我遇到它时隐藏键盘,这是 obj c 中的一个示例:

- (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];
    }
}

关于ios - 如何从 Webview 的键盘获取完成按钮操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44671401/

相关文章:

ios - Xcode 控制台错误消息 : 'fatal error: unexpectedly found nil while unwrapping an Optional value' (Swift)

ios - 如何在底部的每个屏幕中显示 View

ios - Swift 4 - PDFAnnotation 文本(或 UITextField)为文本大小

ios - UIWebView HTML 显示为文本

url - 'NSURLRequest ?' does not have a member named ' URL' - Swift

iphone - uiwebview 和巨大的内存丢失

iphone - willAnimateToRotation 没有被调用

ios - 创建 NSAttributedString 时索引 1 超出范围 [0 .. 0]

ios - TableView with bar to change content on top,如何构建?

swift - 类型 'string' 的值没有成员 'text'