我创建了一个 UIWebView 用于登录 Facebook 的 Graph API OAuth 接口。这很好用,但我必须点击第一个输入字段才能弹出键盘。理想情况下,一旦表单出现,键盘就会出现。所以我一直试图弄清楚如何让第一个表单字段从webViewDidFinishLoad:
UIWebViewDelegate 方法中获得焦点,如下所示:
- (void)webViewDidFinishLoad:(UIWebView *)wv {
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('email')[0].focus();"];
}
唉,这行不通。奇怪的是,当我在 Firefox JavaScript 控制台中运行该 JavaScript 时,它确实将焦点移到了电子邮件字段。但是,当我在 Mac 的 Safari 中运行它时,它什么也不做,就像在 iOS 上一样。FWIW,alert(document.getElementsByName('email')[0])
确实表明它选择了一个 HTMLInputElement。那么为什么focus()
在 iOS 或 Mac OS X 中什么都不做呢?