我目前正在开发类似Mogok的自定义iOS浏览器。当用户点击UIWebView中的任何textinput时,我需要更改默认键盘。
我想知道当用户点击UIWebView中的任何输入文本时系统如何显示键盘?如何在UIWebView中获取成为第一响应者的文本字段的引用?我已经做了2个晚上的黑色:-)还没有结果: - (
任何帮助都将受到高度赞赏。
此致 Ranjan
答案 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