2012-03-19 41 views

回答

3

iOS Developer Library

因爲當自動視圖成爲第一響應者上顯示鍵盤,你往往不需要做任何事情來顯示它。但是,可以通過調用該視圖的becomeFirstResponder方法以編程方式顯示可編輯文本視圖的鍵盤。調用此方法使目標視圖成爲第一響應者,並開始編輯過程,就好像用戶已輕敲視圖一樣。

我懷疑調用[webView becomeFirstResponder]會調出鍵盤,只要沒有所需樣式的HTML元素有焦點。所以你真正的問題可能是以編程方式將HTML文檔中的焦點設置爲元素。我會嘗試通過Javascript來做到這一點。像這樣的東西可能會奏效:

NSString *jscode = @"document.getElementById('whatever').focus();"; 
[self.webView stringByEvaluatingJavaScriptFromString:jscode]; 
+2

沒有那個運氣。我還應該說,我已經在我的UIWebView中放入了一個canBecomeFirstResponder方法,它只是返回YES,並在方法中放置一個斷點。當我用style屬性觸摸一個元素時,鍵盤出現,沒有調用canBecomeFirstResponder。有趣的是,當我觸摸輸入輔助視圖上的完成按鈕時調用該方法。 – 2012-03-20 01:11:27

+0

你可以發佈他們的UIWebView顯示的HTML代碼嗎?最終它將有助於找到一個你想要的Javascript功能。 – 2012-03-20 01:13:30

+0

HTML在標題中包含此腳本 – 2012-03-20 01:25:53

6

它看起來像在iOS6的,現在你可以用「keyboardDisplayRequiresUserAction」做到這一點:

keyboardDisplayRequiresUserAction 布爾值,指示網頁內容是否可以編程顯示鍵盤。

@屬性(非原子)BOOL keyboardDisplayRequiresUserAction 討論 當該屬性被設置爲YES,用戶必須明確地挖掘web視圖,以顯示該元素的鍵盤(或其他相關輸入視圖)中的元素。當設置爲NO時,元素上的焦點事件會導致輸入視圖被自動顯示並與該元素相關聯。

此屬性的默認值爲YES。

可用性 適用於iOS 6.0及更高版本。 宣佈 UIWebView.h

參考:

+0

謝謝,它解決了iOS6的問題 – lenhhoxung 2013-12-04 08:54:57

相關問題