【问题标题】:hide keyboard when go button is pressed on uiwebview在uiwebview上按下go按钮时隐藏键盘
【发布时间】:2011-07-10 22:15:14
【问题描述】:

这是我的上下文: 我有一个带有简单表单的 webview(一个输入类型 =“文本”),我想要两件事: - 当我按下 Go 按钮时,键盘应该会消失 - 我不想在键盘上显示上一个/下一个完成的工具栏

我尝试了很多在这里和那里找到的解决方案,(比如这个iPhone keyboard in UIWebView does not go away根本没有工作:/

我可以尝试任何指针/输入吗?

提前致谢!

【问题讨论】:

    标签: javascript objective-c ios4 iphone


    【解决方案1】:

    对于删除键盘,如果您知道 TextField 的 ID,您可以尝试将您的类添加为 WebView 委托并注入一些 Javascript 以像这样隐藏键盘(您设置委托的类必须具有 UIWebViewDelegate 协议在接口声明中):

    // Where you set up your WebView, add a class as a Delegate (self in this case)
    [webView setDelegate:self];
    

    现在您需要拥有在请求新页面时调用的委托方法

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
        [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('myInput').blur();"];
        return YES;
    }
    

    【讨论】:

    • 好吧,这很有帮助,因为它引导我找到解决方案:stackoverflow.com/questions/4179445/…你现在知道如何删除键盘顶部的 prev/nest done 栏吗?
    • @Pasta - 请将其作为新问题提交。我会先搜索它......似乎有人已经问过了。
    【解决方案2】:
    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        [textField resignFirstResponder];
        [self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[textField text]]]];
    
        return YES;
    }
    

    检查一下!!!

    【讨论】:

    • 这个建议的代码是针对原生文本字段的,而不是像 OP 要求的那样的 WebView
    猜你喜欢
    • 2017-01-31
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2012-05-31
    • 2011-07-30
    • 2013-07-03
    相关资源
    最近更新 更多