2012-03-19 73 views

回答

3

iOS Developer Library

因为当自动视图成为第一响应者上显示键盘,你往往不需要做任何事情来显示它。但是,可以通过调用该视图的becomeFirstResponder方法以编程方式显示可编辑文本视图的键盘。调用此方法使目标视图成为第一响应者,并开始编辑过程,就好像用户已轻敲视图一样。

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

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

没有那个运气。我还应该说,我已经在我的UIWebView中放入了一个canBecomeFirstResponder方法,它只是返回YES,并在方法中放置一个断点。当我用style属性触摸一个元素时,键盘出现,没有调用canBecomeFirstResponder。有趣的是,当我触摸输入辅助视图上的完成按钮时调用该方法。 – 2012-03-20 01:11:27

+0

你可以发布他们的UIWebView显示的HTML代码吗?最终它将有助于找到一个你想要的Javascript功能。 – 2012-03-20 01:13:30

+0

HTML在标题中包含此脚本 – 2012-03-20 01:25:53

6

它看起来像在iOS6的,现在你可以用“keyboardDisplayRequiresUserAction”做到这一点:

keyboardDisplayRequiresUserAction 布尔值,指示网页内容是否可以编程显示键盘。

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

此属性的默认值为YES。

可用性 适用于iOS 6.0及更高版本。 宣布 UIWebView.h

参考:

+0

谢谢,它解决了iOS6的问题 – lenhhoxung 2013-12-04 08:54:57