Сбой UIWebView при длительном нажатии на тег textarea

0

Я хочу использовать пользовательскую клавиатуру для UIWebView. Пользовательская клавиатура должна быть полностью HTML/JS/CSS для использования на нескольких устройствах. По этой причине я добавил уведомление, подобное приведенному ниже:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];

Чтобы не допустить появления естественной клавиатуры, я добавил следующий метод при вызове уведомления.

- (void)keyboardWillShow
{
    [self.webViews endEditing:YES];
}

В HTML файле у меня есть:

<!DOCTYPE>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    <title>keyboard</title>
    <link rel="stylesheet" type="text/css" href="css/style.css" />
</head>  
<body>  

<div id="container">
    <textarea id="write"></textarea>
</div>
</body>  
</html>

Проблема в том, что когда я запускаю этот HTML файл в UIWebView и у меня есть longpress на textarea, или дважды нажмите, он сбой приложения. Если я удалю [self.webViews endEditing:YES]; Это не приведет к сбою приложения, но оно вызывает клавиатуру.

Я подозревал, что вы должны "копировать/вставлять/выбирать/выбирать все" в UIWebView, когда пользователь дважды нажимает или долго нажимает на textarea. Я попытался отключить их, но это не сработало. Любая идея была бы оценена.

Теги:
textarea
uiwebview

3 ответа

0
Лучший ответ

Это Apple Bug # 15535639, надеюсь, они исправит это в ближайшее время.

0

Попробуйте это обходное решение, это сработало для меня.

- (void)keyboardWillShow
{

    dispatch_async(dispatch_get_main_queue(), ^{
    [self.webViews endEditing:YES];
    });
}
0

Для настройки клавиатуры необходим другой подход.

Здесь есть хорошее объяснение, в том числе некоторые примеры кода: настройка клавиатуры iOS

Там еще одна тема здесь, на SO с некоторыми обсуждениями и ссылками на тему: Как создать пользовательскую клавиатуру

  • 0
    Пользовательская клавиатура должна быть полностью HTML / JS / CSS, чтобы использовать ее для нескольких устройств.
  • 0
    Я знаю, следуйте инструкциям и используйте UIWebView в качестве пользовательского представления.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню