2012-03-19 15 views
1

UIWebViewの要素に-webkit-user-modify:read-writeというスタイルプロパティがある場合、要素を押すとキーボードが表示されます。プログラマブルにキーボードを持ち上げることは可能ですか?UIWebViewにキーボードをプログラムで表示

おかげ

+0

はたぶん身体にそのスタイルを適用しますか? – Chaosphere2112

答えて

3

iOS Developer Libraryから:

キーボードは、ビューがファーストレスポンダになったとき、あなたは多くの場合、それを表示するために何かをする必要はありません自動的に表示されているので。ただし、編集可能なテキストビューのキーボードをプログラムで表示するには、そのビューのbecomeFirstResponderメソッドを呼び出します。このメソッドを呼び出すと、ターゲットビューが最初のレスポンダになり、ユーザがビューをタップしたように編集プロセスが開始されます。

必要なスタイルのHTML要素にフォーカスがない限り、[webView becomeFirstResponder]を呼び出すとキーボードが表示されることはありません。したがって、実際の問題はHTMLドキュメントのフォーカスをプログラムで要素に設定することです。私はJavascriptでこれをやろうとします。 Webコンテンツをプログラムでキーボードを表示できるかどうかを示す

keyboardDisplayRequiresUserAction ブール値:

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

それに運がない。また、私は、単純にYESを返し、メソッドにブレークポイントを置く、私のUIWebViewにcanBecomeFirstResponderメソッドを配置したと言うべきです。スタイルプロパティで要素に触れると、canBecomeFirstResponderが呼び出されずにキーボードが表示されます。面白いことに、このメソッドは、入力補助ビューの[完了]ボタンに触れると呼び出されます。 –

+0

UIWebViewが表示しているHTMLコードを投稿できますか?最終的には、あなたが望むことを実行するJavascript関数を見つけるのに役立ちます。 –

+0

HTMLにはこのスクリプトがヘッダにあります –

6

それは今あなたが「keyboardDisplayRequiresUserAction」でこれを行うことができiOS6で次のようになります。この仕事かもしれないような何か。

@property(アトミック)BOOL keyboardDisplayRequiresUserAction 考察このプロパティがYESに設定されている場合、ユーザが明示的にその要素のキーボード(または他の関連する入力画面)を表示するウェブ・ビュー内の要素をタップしなければなりません。 NOに設定すると、要素のフォーカスイベントによって入力ビューが表示され、その要素に自動的に関連付けられます。

このプロパティの既定値はYESです。

利用可能時間 iOS 6.0以降で利用できます。 UIWebView.hで宣言

参照:

+0

ありがとう、それはiOS6からの問題を解決する – lenhhoxung

関連する問題