Как работает клавиатура по умолчанию, когда пользователь нажимает на UIWebView?
В настоящее время я разрабатываю собственный браузер для iOS, похожий на Mogok. Мне нужно изменить клавиатуру по умолчанию, когда пользователь нажимает на любой ввод текста в UIWebView.
Интересно, как система показывает клавиатуру, когда пользователь нажимает на любой вводимый текст в UIWebView? Как я могу получить ссылку на текстовое поле, которое становится первым респондентом в UIWebView? Я уже сделал 2 ночи черными:-) Результата пока нет:-(
Любая помощь будет высоко оценен.
С уважением Ранджан
2 ответа
Ну, если вы не можете победить их, присоединяйтесь к ним.
Насколько я знаю, и я пытался. Вы не можете изменить inputView или inputAccessoryView без использования закрытого класса (UIWebBrowserView).
Но вы можете определить, когда появляется клавиатура, с помощью уведомления UIKeyboardWillShowNotification. Итак, как насчет человека в середине? Я имею в виду, используйте UITextField как буфер.
Позвольте мне объяснить немного больше.
Когда появляется клавиатура, вы можете проверить, является ли первый респондент UIWebView, если это так, вы можете стать текстовым представлением в качестве первого респондента.
Что ты выигрываешь с этим? Текст, набранный с клавиатуры, перейдет в текстовое представление. Это бесполезно, вы бы сказали. Конечно, но как насчет изменения представления ввода для просмотра текста? Как? С этим https://github.com/kulpreetchilana/Custom-iOS-Keyboards
У вас есть пользовательская клавиатура, когда пользователь пишет в веб-представлении!!!
Как вы можете поместить текст textview в веб-просмотр? Легко, Поместите текст textview на вход внутреннего html с textViewDidChange и javascript.
- (void)textViewDidChange:(UITextView *)textView{
NSString* script = [NSString stringWithFormat:@"document.activeElement.value = '%@';", textView.text];
[self stringByEvaluatingJavaScriptFromString:script];
}
Я выделил жирным шрифтом основные фразы идеи. Но, возможно, мое объяснение трудно понять. Или мой английский плохой, поэтому я добавляю пример проекта с идеей.
Вы можете управлять отображением клавиатуры для текстового поля, изменив атрибут типа в HTML, например: <input type='email'/>
Вот список возможных типов: http://www.whatwg.org/specs/web-apps/current-work/