Phonegap: полное удаление черной полосы с клавиатуры iPhone

Мы используем Phonegap для разработки нашего мобильного приложения, и мы позаимствовали код отсюда, чтобы удалить черную панель next/prev/done с клавиатуры:

https://stackoverflow.com/a/9276023/35364

Этот код находит черную полосу,как объект UIView и вызывает на нем 'removeFromSuperview'.

Мы не знакомы с iOS SDK/API. Поэтому, хотя мы можем посмотреть на код и получить представление о том, что он делает, мы не можем сказать, правильно ли он это делает или как его улучшить.

Конкретная проблема, с которой мы сталкиваемся:

У нас есть текстовое поле для написания сообщения, и мы вручную контролируем размещение этого поля точно над клавиатурой, аналогично родному приложению sms. Другими словами, мы помещаем его туда, где должна была быть черная полоса.

Когда мы фокусируем/вводим текст в поле сообщения, система перемещает представление вверх. Похоже, что это механизм, позволяющий убедиться, что текстовое поле не является невидимым, когда пользователь вводит его.

Это происходит, несмотря на то, что текстовое поле видно.

Я заметил, что, помещая поле ввода прямо над тем местом, где обычно находится черная полоса (в отличие от нее позади), представление не прокручивается.

Так что, похоже, система почему-то думает, что черная полоса все еще там!

(Чтобы перепроверить: когда черная полоса не удалена, а мы помещаем текстовое поле прямо над ней, мы можем фокусироваться и набирать в нем, и вид не будет прокручиваться).

Таким образом, возникает вопрос:

Почему «система» подталкивает контент вверх при редактировании текстового поля, которое находится прямо «позади» там, где должна быть черная полоса? Это потому, что черная полоса еще не полностью удалена? Нужно ли что-то делать, чтобы «полностью» убрать черную полосу? Нужно ли заставлять iOS пересчитывать размер клавиатуры? или что именно?

Реализован ли этот механизм (подталкивание вверх по представлению) с помощью UIWebView для iOS или Phonegap?

Существует ли приложение phonegap, которое решило бы эту проблему?

12
задан Community 23 May 2017 в 12:33
поделиться