Как появляется клавиатура по умолчанию, когда пользователь вступает в UIWebView?

В настоящее время я разрабатываю пользовательский браузер iOS, похожий на Mogok. Мне нужно изменить клавиатуру по умолчанию, когда пользователь нажимает на любую текстовую строку в UIWebView.

Интересно, как система показывает клавиатуру, когда пользователь нажимает на любой входной текст в UIWebView? Как получить ссылку на текстовое поле, которое станет первым ответчиком в UIWebView? Я уже сделал 2 ночи черным:-) Пока нет результата: - (

Любая помощь будет высоко оценена.

Отношения Ranjan

Ответ 1

Хорошо, если вы не можете победить их, присоединитесь к ним.

Насколько я знаю, и я попробовал. Вы не можете изменить inputView или inputAccessoryView без использования частного класса (UIWebBrowserView).

Но вы можете обнаруживать, когда клавиатура появляется, с уведомлением UIKeyboardWillShowNotification. Итак, как насчет сделать человека посередине? Я имею в виду, использовать UITextField, как буфер.

Позвольте мне объяснить немного больше.

Когда появится клавиатура, вы можете проверить, является ли первый ответчик UIWebView, если это так, вы можете стать текстовым в качестве первого ответчика.

Что вы выиграли с этим? Текст, набранный клавиатурой, перейдет к текстовому виду. Вы бы сказали, что это бесполезно. Конечно, но как насчет изменить вид ввода textview? Как? С помощью https://github.com/kulpreetchilana/Custom-iOS-Keyboards

У вас есть пользовательская клавиатура, когда пользователь пишет на веб-странице!

Как вы можете поместить текст в текстовое поле? Легко, Поместите текст текста во вход внутреннего html с помощью textViewDidChange и javascript.

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

Я выделил основные фразы этой идеи. Но, может быть, мое объяснение трудно понять. Или мой английский плохой, поэтому я одобряю проект с идеей.

Ответ 2

Вы можете контролировать, какая клавиатура появляется для текстового поля, изменяя атрибут type в HTML, например. <input type='email'/>

Здесь список возможных типов: http://www.whatwg.org/specs/web-apps/current-work/#attr-input-type