4

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

我想知道当用户点击 UIWebView 中的任何输入文本时系统如何显示键盘?如何获取在 UIWebView 中成为第一响应者的文本字段的引用?

4

2 回答 2

9

好吧,如果你不能打败他们,那就加入他们。

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

但是您可以通过通知 UIKeyboardWillShowNotification 来检测键盘何时出现那么,中间的男人怎么样?我的意思是,使用 UITextField 之类的 buffer

让我再解释一下。

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

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

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

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

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

我把这个想法的主要短语加粗。但是,也许我的解释很难理解。或者我的英语不好,所以我上传了一个带有这个想法的示例项目。

于 2013-11-17T22:43:34.910 回答
-1

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

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

于 2013-11-13T18:42:23.107 回答