以编程方式启动UIWebView键盘

时间:2012-06-26 18:04:58

标签: javascript objective-c ios uiwebview ios5.1

Javascript n00b在这里,之前已经提出过这个问题,但没有给出直截了当的回答。

我正在尝试在视图加载时为可编辑的UIWebView启动键盘。

到目前为止,我有以下代码

index.html中的

    <html>
    <head>
         <script Language="text/javascript">
         function showKeyBoard(){
            document.forms['myform'].elements['mytextfield'].focus();
         }
    </script> 
    </head>

    <body OnLoad="document.myform.mytextfield.focus();">
        <form name="myform">
           <textarea type="text" name="mytextfield" cols="40">Tap here to enter text</textarea>
        </form>
    </body>    
    </html>

在我的视图控制器中,我有:

    -(void)viewDidLoad
    {
       [super viewDidLoad];
       [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
    }

同一个视图控制器也是webView的委托,代码如下:

      -(void)webViewDidFinishLoad:(UIWebView *)aWebView 
      {
           [aWebView stringByEvaluatingJavaScriptFromString:@"showKeyBoard()"];
      }

我的java脚本或iOS有什么问题吗?

应用程序不需要textarea我只包含它以具有可聚焦的表单元素。

我对任何能够在视图加载时启动UIWebView键盘的解决方案持开放态度。我已经试图找出一个解决方案已经好几个星期而且我没有在哪里。

编辑:当我使用网络浏览器打开index.html时,焦点就会起作用。

1 个答案:

答案 0 :(得分:5)

从iOS 6开始,您可以设置[aWebView setKeyboardDisplayRequiresUserAction:NO]。