Usted puede obtener el tamaño del teclado del diccionario userInfo
utilizando el UIKeyboardFrameBeginUserInfoKey y el UIKeyboardFrameEndUserInfoKey en su lugar.
Estas dos claves devuelven una instancia NSValue
que contiene un que mantiene la posición y el tamaño del teclado en los puntos inicial y final de la animación show/hide del teclado.
Editar:
Para aclarar, el diccionario userInfo
proviene de una NSNotification ejemplo. Se pasa a su método que se registre con un observador. Por ejemplo,
- (void)someMethodWhereYouSetUpYourObserver
{
// This could be in an init method.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myNotificationMethod:)
name:UIKeyboardDidShowNotification
object:nil];
}
- (void)myNotificationMethod:(NSNotification*)notification
{
NSDictionary* keyboardInfo = [notification userInfo];
NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey];
CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue];
}
Edición 2:
También, por favor no se olvide de eliminar a sí mismo como un observador en su método dealloc
! Esto es para evitar un bloqueo que ocurriría cuando el centro de notificaciones intente notificar a su objeto después de haber sido liberado.
En 2011, Apple finalmente tiene una buena introducción acerca de la manipulación y el tamaño del teclado: http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextA ndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html. –