[Editar:] El problema ha sido resuelto. No tenía mis delegados vinculados correctamente en UIBuilder
. El código es bueno!Mover UIScrollView cuando el teclado entra en su lugar
Estoy tratando de cambiar el tamaño de una vista de desplazamiento cuando aparece el teclado. Fui a los documentos del desarrollador y encontré esta información.
A la izquierda "Gestión del teclado".
En la documentación muestra un poco de código para detectar el tamaño del teclado y luego cambiar el tamaño de un UIScrollView
. He colocado un mensaje de NSLog
en el código para la función - (void)keyboardWasShown:(NSNotification*)aNotification
así que no veo que la función es en realidad ser llamado, pero cuando intento a la NSLog
kbSize
.height siempre tiene un valor de 0.
¿Por qué el código que apple proporcionar para este propósito no funciona?
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
// If active text field is hidden by keyboard, scroll it so it's visible
// Your application might not need or want this behavior.
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (!CGRectContainsPoint(aRect, activeField.frame.origin)) {
CGPoint scrollPoint = CGPointMake(0.0, activeField.frame.origin.y-kbSize.height);
[scrollView setContentOffset:scrollPoint animated:YES];
}
}
Muchas gracias, que fragmento de código contiene todo lo que necesitaba :) – matehat
Se puede usar la biblioteca [KBKeyboardObserver] (https://github.com/kam800/KBKeyboardObserver) para observar los eventos de teclado. – kam800