Клавиатура не появляется при нажатии текстового поля в UIWebView - PullRequest
3 голосов
/ 11 июня 2011

У меня есть UITabViewController с двумя вкладками, вторая содержит веб-браузер. Клавиатура не появится в моем приложении, если я сначала не отобразлю и не укажу UIAlertView на первой вкладке. Что может быть не так?

Ответы [ 5 ]

10 голосов
/ 14 июня 2011

решаемые;Я случайно удалил:

[window makeKeyAndVisible];
3 голосов
/ 06 августа 2012

Решение, упомянутое здесь, не работает для меня.У меня была постоянная ошибка, которая, казалось, была проблемой с iOS, или, по крайней мере, с моими настройками сборки.Я придумал обходной путь .Если вы все еще застряли, как я, попробуйте это.Я думаю, что это будет работать.Вот это вкратце.Посмотрите мой пост, если вам нужна более подробная информация.

Поместите это в делегат вашего веб-представления:

- (BOOL)webView:(UIWebView *)v shouldStartLoadWithRequest:(NSURLRequest *)r navigationType:(UIWebViewNavigationType)t {

  NSString *requestString = [[r URL] absoluteString];

  if ([requestString hasPrefix: @"yourURLPrefix:"] ) {
      if ([requestString hasPrefix: @"yourURLPrefix:keyboardFix"] ) {
          [v.window makeKeyAndVisible];
      }
}

Поместите это в обработчик событий onFocus любого элемента ввода, который вам нужен для надежного отображенияклавиатура:

document.location = "yourURLPrefix:keyboardFix";
2 голосов
/ 11 июня 2011

Не так много, но если у вас визуально отображается текстовое поле, но при нажатии на него клавиатура не вызывается, то, скорее всего, у вас есть проблема с фокусом, т. Е. Представление, содержащее текстовое поле, не считает, что оно должно перехватывать нажатия. Обычно это происходит потому, что другое представление визуально находится впереди (ниже в иерархии логического представления) представления, содержащего текстовое поле. Предположительно, отображение и последующее отклонение предупреждения изменяет иерархию представления и позволяет текстовому полю перехватывать касания.

Это то, что я бы проверил первым.

0 голосов
/ 12 сентября 2012

Я обнаружил, что [(window) makeKeyAndVisible] добился цели здесь.

Если вы пытаетесь использовать makeKeyAndVisible и, похоже, он ничего не делает, очень вероятно, что вы отправляете это сообщение пустому объекту - это то, с чем я столкнулся. Используйте NSLog () для проверки подлинности окна, в которое вы будете отправлять это сообщение.

Как только я нашел нужный объект Window, он работал нормально.

0 голосов
/ 29 октября 2011

Для меня проблемой была сторонняя библиотека, которую я использовал DCIntrospect (очень рекомендуется), в ней есть ошибка, препятствующая появлению клавиатуры в UIWebViews.Проблема была открыта https://github.com/domesticcatsoftware/DCIntrospect/issues/36

...