Скрытие клавиатуры ios

У меня есть несколько текстовых входов, и я могу скрыть клавиатуру всякий раз, когда я касаюсь фона, но только когда я входил в первое текстовое поле nameField1. теперь этот код должен быть простым, но я просто не могу его получить, что я делаю неправильно?

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

}

Ответ 1

Если вы хотите скрыть клавиатуру, когда вы нажимаете кнопку, и у вас есть более одного UITextFields в view, то вы должны использовать:

[self.view endEditing:YES];

Нажмите в любом месте просмотра, и клавиатура исчезнет.

Ответ 2

Попробуйте следующее:

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

Ответ 3

Вы также можете выполнять итерацию по массиву представлений (например, подзаголовка UIView) и вручную отменить клавиатуру, это хорошо, если вы не хотите уходить в отставку во всех подзонах внутри вашего родительского UIView.

- (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];
}

Ответ 4

Вы можете попробовать UITouch метод, и в этом поле установите объект текстового поля и вызовите resignFirstResponder когда вы прикоснетесь к экрану, клавиатура уйдет в отставку, я надеюсь, что это сработает для вас.

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