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

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

我想知道当用户点击UIWebView中的任何input文本时系统如何显示键盘? 我怎样才能得到在UIWebView成为第一响应者的文本字段的引用? 我已经做了2晚黑:-)没有结果:-(

任何帮助将不胜感激。

问候Ranjan

那么,如果你不能打败他们,join他们。

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

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

让我再解释一下。

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

你赢了什么? 用键盘input的文本转到文本视图。 这是没用的,你会说。 当然,但如何改变textview的input视图 ? 怎么样? 有了这个https://github.com/kulpreetchilana/Custom-iOS-Keyboards

你有一个自定义的键盘,当用户在网页视图中写入!

你怎么能把textview的文字放在webview中? 很简单, 把textview的文本放在内部html的input中,用textViewDidChange和javascript。

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

我大胆地提出了这个主意的主要用语。 但是,也许我的解释很难理解。 或者我的英文不好,所以我上传了一个样本项目 。

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

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