【发布时间】:2012-04-04 11:42:21
【问题描述】:
如果 UIWebView 中的元素具有样式属性 -webkit-user-modify:read-write,则按下该元素会导致键盘出现。是否可以通过编程方式调出键盘?
谢谢
【问题讨论】:
-
也许将该样式应用于身体?
标签: javascript iphone ios uiwebview webkit
如果 UIWebView 中的元素具有样式属性 -webkit-user-modify:read-write,则按下该元素会导致键盘出现。是否可以通过编程方式调出键盘?
谢谢
【问题讨论】:
标签: javascript iphone ios uiwebview webkit
现在看起来在 iOS6 中你可以使用“keyboardDisplayRequiresUserAction”来做到这一点:
keyboardDisplayRequiresUserAction 一个布尔值,指示 Web 内容是否可以以编程方式显示键盘。
@property (nonatomic) BOOL keyboardDisplayRequiresUserAction 讨论 当此属性设置为 YES 时,用户必须显式点击 Web 视图中的元素以显示该元素的键盘(或其他相关输入视图)。当设置为 NO 时,元素上的焦点事件会导致输入视图自动显示并与该元素关联。
此属性的默认值为 YES。
可用性 在 iOS 6.0 及更高版本中可用。 宣布于 UIWebView.h
参考:
【讨论】:
因为当视图成为第一响应者时键盘会自动显示,所以您通常不需要做任何事情来显示它。但是,您可以通过调用该视图的 becomeFirstResponder 方法以编程方式显示可编辑文本视图的键盘。调用此方法会使目标视图成为第一响应者并开始编辑过程,就像用户点击了视图一样。
我怀疑调用[webView becomeFirstResponder] 是否会调出键盘,只要没有具有所需样式的 HTML 元素具有焦点。因此,您真正的问题可能是以编程方式将 HTML 文档中的焦点设置为元素。我会尝试通过 Javascript 来做到这一点。这样的事情可能会奏效:
NSString *jscode = @"document.getElementById('whatever').focus();";
[self.webView stringByEvaluatingJavaScriptFromString:jscode];
【讨论】: