Как я могу заставить UIWebView сфокусироваться на вводе формы и вызвать клавиатуру?

Я создал UIWebView для входа в интерфейс OAuth Graph API Facebook. Это отлично работает, но мне нужно коснуться первого поля ввода, чтобы появилась клавиатура. В идеале клавиатура должна появиться, как только появится форма. Итак, я пытался выяснить, как сделать так, чтобы первое поле формы получило фокус из метода webViewDidFinishLoad: UIWebViewDelegate, например:

- (void)webViewDidFinishLoad:(UIWebView *)wv {
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('email')[0].focus();"];
}

Увы, это не работает. Любопытно, что когда я запускаю этот JavaScript в консоли Firefox JavaScript, он перемещает фокус в поле электронной почты. Однако, когда я запускаю его в Safari для Mac, он ничего не делает, как и на iOS. FWIW, alert (document.getElementsByName ('email') [0]) действительно показывает, что он выбирает HTMLInputElement. Так почему же focus () ничего не делает ни в iOS, ни в Mac OS X?

7
задан theory 14 December 2010 в 18:32
поделиться