当用户点击UIWebView时,默认键盘是如何出现的?

时间:2013-11-13 18:17:41

标签: ios uiwebview

我目前正在开发类似Mogok的自定义iOS浏览器。当用户点击UIWebView中的任何textinput时,我需要更改默认键盘。

我想知道当用户点击UIWebView中的任何输入文本时系统如何显示键盘?如何在UIWebView中获取成为第一响应者的文本字段的引用?我已经做了2个晚上的黑色:-)还没有结果: - (

任何帮助都将受到高度赞赏。

此致 Ranjan

2 个答案:

答案 0 :(得分:9)

好吧,如果你无法击败他们,请加入他们。

据我所知,我试过了。如果不使用私有类(UIWebBrowserView),则无法更改inputView或inputAccessoryView。

但您可以检测键盘何时出现,并显示通知UIKeyboardWillShowNotification。那么,做一个中间人怎么样? 我的意思是,像缓冲区一样使用UITextField。

让我再解释一下。

当键盘出现时,您可以检查第一个响应者是否是UIWebView,如果是,您可以成为第一个响应者的textview。

你赢了什么?用键盘输入的文本转到文本视图。 你会说,那没用。当然,但如何改变textview的输入视图呢?怎么样?使用此https://github.com/kulpreetchilana/Custom-iOS-Keyboards

当用户在网页视图中书写时,您有一个自定义键盘!!!

如何将textview的文本放在webview中? 简单,使用textViewDidChange和javascript将textview的文本放在内部html的输入中。

- (void)textViewDidChange:(UITextView *)textView{
    NSString* script = [NSString stringWithFormat:@"document.activeElement.value = '%@';", textView.text];   
    [self stringByEvaluatingJavaScriptFromString:script];
}

我粗略地提出了这个想法的主要观点。 但是,也许我的解释很难理解。或者我的英语很糟糕,所以我想了一个带有这个想法的样本project

答案 1 :(得分:-1)

您可以通过更改HTML中的type属性来控制文本字段显示的键盘,例如<input type='email'/>

以下是可能的类型列表:http://www.whatwg.org/specs/web-apps/current-work/#attr-input-type