在我的 iOS 应用程序中,我需要根据用户之前的交互来关注一些文本字段。我可以很好地使用javascript进行聚焦,如下(在viewDidFinshLoad
方法中)
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];
有没有(更好的)方法可以做到这一点,更重要的是,一旦专注于输入元素,就保持键盘显示,直到用户关闭它。
提前致谢。尼基尔