2

ここでのJavascriptn00b、この質問は以前に尋ねられましたが、簡単な答えは与えられませんでした。

ビューが読み込まれたときに、編集可能な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>

私のViewControllerには、次のものがあります。

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

同じViewControllerは、次のコードを持つwebViewのデリゲートでもあります。

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

私のJavaスクリプトまたはiOSに何か問題がありますか?

textareaは、フォーカス可能なフォーム要素を持つために含めたアプリには必要ありません。

ビューが読み込まれたときにUIWebViewキーボードを起動するソリューションを受け入れています。私は何週間も解決策を模索してきましたが、どこにも行き着きませんでした。

編集:Webブラウザでindex.htmlを開くと、フォーカスが機能します。

4

1 に答える 1

5

iOS 6以降では、[aWebView setKeyboardDisplayRequiresUserAction:NO]を設定できます。

于 2013-03-21T09:57:59.237 に答える