私の iOS アプリでは、ユーザーの以前の操作に基づいて、いくつかのテキスト フィールドに注目する必要があります。viewDidFinshLoad
次のように(メソッド内で)、JavaScriptを使用してフォーカスをうまく行うことができました
if (![focusElement isEqualToString:@""]) {
// make the keyboard freely appear without user intervention
[webView setKeyboardDisplayRequiresUserAction:NO];
// first lose any previous focus and then focus on
// the previously clicked element
NSString *jsToFocus = [NSString stringWithFormat:
@"document.activeElement.blur();document.getElementById(\'%s\').focus();",
[focusElement UTF8String]];
// javascript focuses on the input
[webView stringByEvaluatingJavaScriptFromString:jsToFocus];
これはうまくいきます。唯一の問題は、ページがさらにフレーム/JavaScript をロードすると、キーボードがドロップダウンし、新しいロードごとに数回再表示されることです。私はこれが以前の原因で起こっていると思います
[webView setKeyboardDisplayRequiresUserAction:NO];
これを行う(より良い)方法はありますか?さらに重要なのは、ユーザーがキーボードを閉じるまで、入力要素にフォーカスしたままキーボードを表示したままにすることです。
前もって感謝します。ニキル