【问题标题】:How do I handle return key on an iOS web view native keyboard?如何处理 iOS Web 视图本机键盘上的返回键?
【发布时间】:2013-04-18 14:42:06
【问题描述】:

在我的 iOS 应用中,我有一个带有文本字段的 UIWebView。我想回应被点击的 Return 键。我该怎么做?

我能否以某种方式访问​​ UITextField,以便实现 UITextFieldDelegate 方法 textFieldShouldReturn?还是有其他方法可以做到这一点?

【问题讨论】:

    标签: ios html input uiwebview


    【解决方案1】:

    你需要为此做一些 JavaScript 技巧。

    在您的 HTML 文档中,为您的文本输入控件绑定一个 keyup 事件回调,(上次我检查时,不知何故 UIWebView 不会为返回键触发 keypress 事件,因此 keyup 事件是您的最佳选择)

    在此回调中,让 Web 视图转到自定义 URL 方案。例如下面:

    var input = document.getElementById('textInput');
    input.onkeyup = function(){window.location = 'callback://keyup'};
    

    然后您可以在 UIWebView 的委托中处理此 URL 方案

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    {
        if ([request.URL.scheme isEqualToString:@"callback"]) {
            // Do what you want
    
            return NO;
        }
    
        return YES;
    }
    

    【讨论】:

    • 谢谢,这基本上是我确定的策略。
    【解决方案2】:

    uiwebview 不能 uitextfieldDelegate 。尝试阅读苹果文档

    【讨论】:

    • 感谢您的回复。我意识到我不能使用 UITextFieldDelegate,这就是为什么我在这里问这个问题“当从 webview 嵌入式文本字段触发键盘时,如何获得类似于 UITextFieldDelegate 的返回键响应能力。”
    猜你喜欢
    • 2012-10-16
    • 2013-09-17
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多