Phonegap: removendo completamente a barra preta do teclado do iPhone
Estamos usando o Phonegap para desenvolver nosso aplicativo móvel e pegamos emprestado o código daqui para remover a barra preta next / prev / done do teclado:
https://stackoverflow.com/a/9276023/35364
O que esse código faz é encontrar a barra preta, como um objeto UIView, e chama 'removeFromSuperview' nela.
Não estamos familiarizados com o iOS SDK / API. Então, enquanto podemos olhar para o código e ter uma ideia do que está fazendo, não podemos dizer se ele está sendo feito corretamente ou como melhorá-lo.
O problema específico em que estamos nos deparando:
Temos um campo de texto para escrever uma mensagem e controlamos manualmente o posicionamento deste campo exatamente acima do teclado, semelhante ao aplicativo sms nativo. Em outras palavras, estamos colocando onde a barra preta deveria estar.
Quando nos concentramos / digitamos no campo da mensagem, o sistema empurra a visualização para cima. Parece que este é um mecanismo para garantir que o campo de texto não fique invisível quando o usuário digita.
Isso está acontecendo mesmo que o campo de textoé visível.
Eu notei que, colocando o campo de entrada logo acima de onde a barra preta estaria normalmente (como oposto a ela por trás), a visualização não rola.
Então parece que o sistema acha que a barra preta ainda está lá!
(Para checar novamente: quando a barra preta não é removida e colocamos o campo de texto logo acima dela, podemos nos concentrar e digitar nela, e a visualização não rolaria).
Então a questão é:
Por que o "sistema" empurra o conteúdo para cima ao editar um campo de texto que está localizado "atrás" onde a barra preta deveria estar? É porque a barra preta ainda não está completamente removida? Precisamos fazer algo para "remover" completamente a barra preta? Precisamos forçar o iOS a recalcular o tamanho do teclado? ou o que exatamente?
Esse mecanismo (aumentando a visualização) implementado pelo UIWebView do iOS ou pelo Phonegap?
Existe algum aplicativo phonegap que resolveu este problema?