Как работает клавиатура по умолчанию, когда пользователь нажимает на 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/

Другие вопросы по тегам