escondiendo el teclado ios

Tengo algunas entradas de texto y puedo ocultar el teclado cada vez que toco el fondo, pero solo cuando he estado ingresando el primer nombre de cuadro de texto textField1. ahora este código debería ser simple pero no puedo entenderlo, ¿qué estoy haciendo mal?

-(IBAction)backgroundTouched:(id)sender { [textField1 resignFirstResponder]; [buildLength resignFirstResponder]; [buildWidth resignFirstResponder]; [ridgeWidth resignFirstResponder]; [rafterWidth resignFirstResponder]; [hipWidth resignFirstResponder]; [eaveOverhang resignFirstResponder]; [spacing resignFirstResponder]; 

}

Si desea ocultar el teclado cuando toca un botón y tiene más de un UITextFields en su view , debe usar:

 [self.view endEditing:YES]; 

Toque en cualquier parte de la vista, y el teclado desaparecerá.

Prueba esto:

 - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [[self view] endEditing:YES]; } 

También puede iterar a través de una matriz de vistas (como las subvistas de UIView) y renunciar manualmente al teclado, esto es bueno si no desea renunciar a TODAS las subvistas dentro de su UIView padre.

 - (void)viewDidLoad { self.view.userInteractionEnabled = TRUE; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ //Iterate through your subviews, or some other custom array of views for (UIView *view in self.view.subviews) [view resignFirstResponder]; } 

Puede probar el método de UITouch , y en este establecer su objeto de campo de texto y llamar a resignFirstResponder cada vez que toque en la pantalla, el teclado se resignará, espero que esto funcione para usted.

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [currentSelectedTextField resignFirstResponder]; }