2010-11-12 62 views
8

我有一個UIWebView與其中的一個<input type="text"/> html元素。 我想要將輸入元素集中在html中,並以編程方式在iPhone上顯示鍵盤,而無需點擊屏幕。iPhone UIWebView becomeFirstResponder

我已經試過如下:

  • 設置從JavaScript對焦(在這種情況下,聚焦狀態JS事件將觸發,但鍵盤將不會顯示)
  • [webView becomeFirstresponder](返回NO)
  • 設置web視圖的第一子視圖是firstResponder(返回NO)
  • UIWebView爲YES返回canBecomeFirstResponder:(什麼也沒發生)

我試圖從昨天開始找到解決方案,但找不到它。 請幫忙。

+0

做你找到一些這方面的解決方案?我發現的唯一方法是以編程方式模擬WebView上的單擊。但我的應用程序可能會因此而被拒絕... :( – Dmitry 2012-08-31 10:27:20

+2

從iOS 6開始,您可以使用[keyboardDisplayRequiresUserAction](http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference /Reference.html)執行此操作 – catlan 2012-11-06 16:52:31

+0

我不知道您是如何設法創建此問題的,但通常情況下,使用becomeFirstResponder就像我在文章中描述的那樣:http://bcaccinolo.wordpress.com/2010/ 12月28日/的UITextField-與最鍵盤自動地/ – 2010-12-28 10:50:42

回答

0

你有試過嗎?不要忘記連接UIWebView的委託連接,理想情況下只在需要時執行javascript。

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

在iOS6的或以上,你必須設置keyboardDisplayRequiresUserActionNO第一:

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