iPhone UIWebView成为FirstFirstResponder

时间:2010-11-12 10:47:32

标签: iphone uiwebview

我有一个UIWebView,其中包含<input type="text"/>个html元素。 我想将输入元素集中在html中,并以编程方式在iPhone上显示键盘,而不需要点击屏幕。

我尝试了以下内容:

  • 从JavaScript设置焦点(在这种情况下,onFocus JS事件将触发,但键盘不会显示)
  • [webView becomeFirstresponder](返回NO)
  • 将webView的第一个子视图设置为firstResponder(返回NO)
  • 子类UIWebViewcanBecomeFirstResponder返回YES :(没有任何反应)

我试图从昨天开始找到解决方案,但我找不到它。 请帮忙。

2 个答案:

答案 0 :(得分:2)

在iOS6或更高版本中,您必须先将keyboardDisplayRequiresUserAction设为NO

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{
    webView.keyboardDisplayRequiresUserAction = NO;
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"theElementId\").setFocus();"]; 
}

答案 1 :(得分:0)

你试过这个吗?不要忘记连接UIWebView的委托连接,理想情况下只在需要时才执行javascript。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"theElementId\").setFocus();"]; 
}