How can I make a UITextField move up when the keyboard is present - on starting to edit?
Com o SDK do iOS:
eu tenho umUIView
comUITextField
s que trazem um teclado. Eu preciso que seja capaz de:
Permitir rolagem do conteúdo doUIScrollView
para ver os outros campos de texto uma vez que o teclado é criado
Automaticamente "pule" (rolando para cima) ou diminuindo
Eu sei que preciso de umUIScrollView
. Eu tentei mudar a classe do meuUIView
para umUIScrollView
mas ainda não consigo rolar as caixas de texto para cima ou para baixo.
Eu preciso de umUIView
e umUIScrollView
? Alguém entra no outro?
O que precisa ser implementado para rolar automaticamente para o campo de texto ativo?
Idealmente, o máximo possível da configuração dos componentes será feito no Interface Builder. Eu gostaria de escrever apenas o código para o que precisa.
Note oUIView
(ouUIScrollView
) que estou trabalhando é trazido por uma tabbar (UITabBar
), que precisa funcionar normalmente.
Edit: Eu estou adicionando a barra de rolagem apenas para quando o teclado aparece. Mesmo que não seja necessário, sinto que fornece uma interface melhor porque o usuário pode rolar e alterar as caixas de texto, por exemplo.
Eu tenho que trabalhar onde eu mudo o tamanho do quadro doUIScrollView
quando o teclado sobe e desce. Estou simplesmente usando:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
No entanto, isso não "sobe" automaticamente ou centraliza os campos de texto inferiores na área visível, que é o que eu realmente gostaria.