Ya no puede ocultar el keyboard durante la vista. Desaparecerá en iOS7.

El siguiente código se usó para funcionar en iOS6 para ocultar el keyboard cuando un controller de vista se saltó de la stack de navigation:

- (void)viewWillDisappear:(BOOL)animated { [self.view endEditing:YES]; [super viewWillDisappear:animated]; } 

Sin embargo, en iOS7, la línea [auto.view endEditing: YES] parece ignorada. Probé el command en otros events de vista (viewDidDisappear, viewWillAppear y viewDidAppear), y el único en el que funcionó es viewDidAppear. Parece que una vez que se inicia un "pop", perdemos la capacidad de ocultar el keyboard hasta que el controller de vista se "empuja" hacia atrás en la stack.

Si bien colocar el código en viewDidAppear funciona para ocultar el keyboard, lo malo es que el keyboard se muestra brevemente cuando el viewController se vuelve a colocar en la stack de navigation … bastante inaceptable desde una perspectiva de interfaz de usuario.

¿Alguien más tuvo éxito al tratar este tema? Preferiría no tener que escribir mi propio button CANCELAR, pero en este momento, es lo único que puedo pensar que funcionará.

Hubo un cambio en iOS 7 donde los controlleres de vista que se presentan como forms modales no pueden descartar el keyboard de forma pnetworkingeterminada. Para solucionarlo, debe anular el método disablesAutomaticKeyboardDismissal del controller de vista y devolver NO .

Si es un UITextView configure la propiedad editable en NO . Intenté esto y oculta el keyboard tan pronto como se establece. No lo he probado con un UITextField pero supongo que obtendrás el mismo resultado al configurar la propiedad enabled en NO . Si eso no funciona, cree un UITextField con userInteractionEnabled establecido en NO como background para un UITextView transparente y use la propiedad editable como se indicó anteriormente.

El problema es que en algún momento entre el momento en que presiono el button "ATRÁS" y el time en que la vista "Desaparecerá" se dispara, el canResignFirstResponder del campo de text actual se establece en FALSE, lo que impide que el keyboard se oculte. No he podido descubrir nada en mi código que pueda causar esto, y sospecho que podría ser algún tipo de error de iOS 7, ya que el mismo código funcionó para mí en iOS 6.

Como una solución, implementé la siguiente solución. Subclass UINavigationController y anulo el siguiente método:

 - (UIViewController *)popViewControllerAnimated:(BOOL)animated { [self.topViewController.view endEditing:YES]; return [super popViewControllerAnimated:animated]; } 

Esto hizo que el keyboard desaparezca apropiadamente cuando toqué el button Atrás para abrir el controller de vista actual. Un hermoso suspiro de alivio que no tuve que escribir un montón de botones Atrás personalizados.

Para ocultar el keyboard cuando el campo de text pierde foco

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { if ([textField isFirstResponder]) [textField resignFirstResponder]; return YES; } 

Probé una solución. Puede que no sea lo que ustedes esperan.

Si está utilizando storyboard, puede renunciar al keyboard en el método " prepareForSeuge ".

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { [self.view endEditing:YES]; } 

Funcionó bien para mí.

El enfoque dado en el siguiente definitivamente ocultará la barra de estado en iOS7.

 - (BOOL)prefersStatusBarHidden { return YES; } 

Agregue esto a su file .plist (vaya a 'información' en la configuration de su aplicación)

 View controller-based status bar appearance --- NO 

Entonces puede llamar a esta línea para ocultar la barra de estado:

 [[UIApplication shanetworkingApplication] setStatusBarHidden:YES]; 

En caso de que su aplicación se desarrolle para admitir solo iPhone, la barra de estado no se ocultará cuando ejecute su aplicación en iPad.

Coloque su UItextfield o UItextview para la statement global.

UITextfield textfield = su object de campo de text;

 -(void)viewWillDisappear:(BOOL)animated { [self.view endEditing:YES]; [textfield resignFirstResponder]; [super viewWillDisappear:animated]; }