¿Cómo mostrar el lado superior del keyboard de UItextfield cuando ingresamos text, en el iPhone?

Tengo un UITextfield en el que estoy ingresando valor. No quiero desplazarme ni ajustar el keyboard, quiero que el keyboard se ajuste automáticamente cuando ingrese el text en UITextfield y siempre muestre debajo del campo de text.

Cualquier sugerencia de expertos sería muy bienvenida.

Aquí hay un código que he usado. Básicamente, lo que vamos a hacer es animar la position de la vista cada vez que se enfoca un UITextField. Para hacer esto, debemos convertir a nuestro UIViewController en un delegado de nuestros UITextFields

define una variable flotante animadaDistancia en .h del file

@interface <ClassName> float animatedDistance @end static const CGFloat KEYBOARD_ANIMATION_DURATION = 0.3; static const CGFloat MINIMUM_SCROLL_FRACTION = 0.2; static const CGFloat MAXIMUM_SCROLL_FRACTION = 0.8; static const CGFloat PORTRAIT_KEYBOARD_HEIGHT = 216; static const CGFloat LANDSCAPE_KEYBOARD_HEIGHT = 162; - (void)textFieldDidBeginEditing:(UITextField *)textField { CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField]; CGRect viewRect = [self.view.window convertRect:self.view.bounds fromView:self.view]; CGFloat midline = textFieldRect.origin.y + 0.5 * textFieldRect.size.height; CGFloat numerator = midline - viewRect.origin.y - MINIMUM_SCROLL_FRACTION * viewRect.size.height; CGFloat denominator = (MAXIMUM_SCROLL_FRACTION - MINIMUM_SCROLL_FRACTION) * viewRect.size.height; CGFloat heightFraction = numerator / denominator; if (heightFraction < 0.0) { heightFraction = 0.0; } else if (heightFraction > 1.0) { heightFraction = 1.0; } UIInterfaceOrientation orientation = [[UIApplication shanetworkingApplication] statusBarOrientation]; if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) { animatedDistance = floor(PORTRAIT_KEYBOARD_HEIGHT * heightFraction); } else { animatedDistance = floor(LANDSCAPE_KEYBOARD_HEIGHT * heightFraction); } CGRect viewFrame = self.view.frame; viewFrame.origin.y -= animatedDistance; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationDuration:KEYBOARD_ANIMATION_DURATION]; [self.view setFrame:viewFrame]; [UIView commitAnimations]; } } 

Ahora que la vista se ha "activado" cuando se selecciona un UITextField, queremos asegurarnos de que lo deslizamos hacia abajo cuando terminamos:

  - (void) textFieldDidEndEditing:(UITextField *)textField { CGRect viewFrame = self.view.frame; viewFrame.origin.y += animatedDistance; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationDuration:KEYBOARD_ANIMATION_DURATION]; [self.view setFrame:viewFrame]; [UIView commitAnimations]; } 

Para más Visita la documentation de Apple

Anime el marco (viewcontroller.view.frame.origin.y – 215) de su vista que contiene el campo de text cuando el campo de text comienza a editar y retrocede cuando finaliza.

Use los methods UITextfieldDelegate

Puedes usar esta class que te ayudará a hacer lo necesario. Todo lo que necesita hacer es convertir la class de ese UITableView en TPKeyboardAvoidingTableView. Lo mismo para UIScrollView y UICollectionView. Puede usar estas classs para evitar el keyboard.

Espero que esto ayude. Y si lo hace, por favor acepte. 😉 Gracias y Saludos.