Gracias tanto por este; funciona genial Sin embargo, el código tal como se presenta tiene 2 limitaciones ya que las experimentaron:
1) La vista que se está reposicionado simplemente se desliza hacia arriba fuera de la pantalla en lugar de cambio de tamaño para ajustarse al espacio disponible después de que el teclado aparece
2) Repetir las notificaciones debido a campos de texto de conmutación continúan aplicando el cambio de marco, lo que hace que la vista salga gradualmente de la pantalla.
La causa es que lo anterior es una reposición en relación con el marco actual de la vista en lugar de un cambio de tamaño en relación con el teclado. Aquí hay dos líneas modificadas de código que solucionar este problema:
En liftMainViewWhenKeybordAppears :, cambiar el tamaño en lugar de reposición, en relación con el teclado:
keyboardFrame = [self.view.window convertRect:keyboardFrame toView:self.view.superview];
CGRect superviewFrame = [self.view.window convertRect:self.view.superview.frame toView:self.view];
[self.view setFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
superviewFrame.size.height - keyboardFrame.size.height)];
En returnMainViewToInitialposition :, cambiar la animación a este setFrame: (esencialmente similar a la transformación de identidad).
[self.view setFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
keyboardFrame.origin.y + keyboardFrame.size.height)];
duplicados de http://stackoverflow.com/questions/1247113/iphone-keyboard-covers-text-field/1533847#1533847 – cidered
No es un duplicado. Esta pregunta es sobre la barra de herramientas, no sobre el campo de texto. – phatmann