以编程方式在UIWebView中显示键盘

时间:2012-03-19 23:33:31

标签: javascript iphone ios uiwebview webkit

如果UIWebView中的元素具有样式属性-webkit-user-modify:read-write,则按下该元素会导致键盘出现。是否可以以编程方式调出键盘?

由于

2 个答案:

答案 0 :(得分:6)

在iOS6中,您现在可以使用“ keyboardDisplayRequiresUserAction ”执行此操作:

keyboardDisplayRequiresUserAction 一个布尔值,指示Web内容是否可以以编程方式显示键盘。

@property(非原子)BOOL keyboardDisplayRequiresUserAction 讨论 当此属性设置为YES时,用户必须显式点击Web视图中的元素以显示该元素的键盘(或其他相关输入视图)。设置为NO时,元素上的焦点事件会导致输入视图自动显示并与该元素关联。

此属性的默认值为YES。

状况 适用于iOS 6.0及更高版本。 宣告进入 UIWebView.h

参考:

答案 1 :(得分:3)

来自iOS Developer Library

  

由于当视图成为第一响应者时键盘会自动显示,因此您通常无需执行任何操作来显示它。但是,您可以通过调用该视图的becomeFirstResponder方法以编程方式显示可编辑文本视图的键盘。调用此方法会使目标视图成为第一个响应者,并开始编辑过程,就像用户点击视图一样。

我怀疑只要没有具有所需样式的HTML元素具有焦点,调用[webView becomeFirstResponder]就会调出键盘。因此,您真正的问题可能是以HTML编程方式将HTML文档中的焦点设置为元素。我会尝试通过Javascript来做到这一点。这样的事情可能有用:

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