visual studio microsoft guia español descargar community ios ipad uimodalpresentationformsh

ios - studio - El diálogo modal no descarta el teclado



visual studio community (6)

Me encuentro con un problema donde el teclado no se descarta al dejar un UITextField o UITextView en UIModalPresentationFormSheet . Además, he creado un botón grande para que sirva como fondo de la vista, de modo que si el usuario toca fuera de los campos, se activa. Estoy usando el mismo código en un controlador de vista normal, y funciona como se esperaba. En el controlador de vista modal no hace nada. Cualquier sugerencia sera apreciada.

- (BOOL)textFieldShouldReturn:(id)sender { [titleTextField resignFirstResponder]; return YES; } - (BOOL)textViewShouldReturn:(id)sender { [synopsisTextView resignFirstResponder]; return YES; } - (IBAction)textFieldDoneEditing:(id)sender { [sender resignFirstResponder]; } - (IBAction)textViewDoneEditing:(id)sender { [sender resignFirstResponder]; } - (IBAction)backgroundClick:(id)sender { [titleTextField resignFirstResponder]; [synopsisTextView resignFirstResponder]; }


Anulación disablesAutomaticKeyboardDismissal Desahucio Automático del disablesAutomaticKeyboardDismissal para devolver NO, ya que a continuación se solucionó el mismo problema mío. Debería poner este código en su controlador de vista, desde el cual inicia el teclado:

- (BOOL)disablesAutomaticKeyboardDismissal { return NO; }

Además, consulte esta pregunta SO si desea obtener una explicación detallada.


El disablesAutomaticKeyboardDismissal negó a funcionar en iOS 7.

Pero ... Logré resolver este problema simplemente deshabilitando los UITextFields en la pantalla.

Mi solución se describe here .

Esta solución incluso funciona en Modal UIViewController s.

Sí ... ¡¡también me sorprendió !!


Lo resolví cambiando el tamaño de UIModalPresentationPageSheet. Vea mi respuesta here .


Para aquellos que tienen problemas con UINavigationController , creo que hay una mejor solución que una categoría en UIViewController . Deberíamos cambiar el comportamiento de UINavigationController para preguntarle a su topViewController (en mi opinión, así es como todos los contenedores ViewController deberían manejar esto).

@implementation UINavigationController (DelegateAutomaticDismissKeyboard) - (BOOL)disablesAutomaticKeyboardDismissal { return [self.topViewController disablesAutomaticKeyboardDismissal]; }


Si está presentando una vista modal con el estilo de presentación "hoja de formulario", Apple aparentemente no descarta el teclado, pensando que no quieren que el teclado entre y salga donde un usuario hará mucha edición (es decir, "formas"). La solución sería cambiar el estilo de presentación o vivir con él.


Si implementa el protocolo UITextFieldDelegate, puede provocar inadvertidamente este comportamiento si realiza la validación de texto. Si sus códigos de validación devuelven falso de textFieldShouldEndEditing cuando el texto no es válido, el campo no puede renunciar a su primer estado de respuesta y el teclado permanecerá en la pantalla en la vista siguiente.

Más detalles en el teclado de UITextField no se descartarán. No realmente