Клавиатура не отображается в полях ввода в UIWebView, если не вызывается Копирование - PullRequest
2 голосов
/ 04 мая 2011

У меня есть UIWebView, который на данный момент просто загружает Google. При нажатии на строку поиска не появляется клавиатура, однако, если я удержу палец на ссылке на главной странице Google, появится диалоговое окно «Открыть или скопировать», и я смогу использовать клавиатуру. Я не уверен, почему это так.

    [LoadGoogle loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];

Любая помощь очень ценится. Я часами пытался это выяснить.

Ответы [ 3 ]

3 голосов
/ 19 апреля 2012

Мне пришлось добавить [_window makeKeyAndVisible]; в AppDelegate, чтобы исправить это

2 голосов
/ 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";
1 голос
/ 05 мая 2011

Это было решено.Проблема заключалась в наличии «окна» в IB под контроллером.Перемещение окна вверх и правильное связывание его исправили его.

...