Ответ 1
Если вы хотите скрыть клавиатуру, когда вы нажимаете кнопку, и у вас есть более одного UITextFields
в view
, то вы должны использовать:
[self.view endEditing:YES];
Нажмите в любом месте просмотра, и клавиатура исчезнет.
У меня есть несколько текстовых входов, и я могу скрыть клавиатуру всякий раз, когда я касаюсь фона, но только когда я входил в первое текстовое поле nameField1. теперь этот код должен быть простым, но я просто не могу его получить, что я делаю неправильно?
-(IBAction)backgroundTouched:(id)sender {
[textField1 resignFirstResponder];
[buildLength resignFirstResponder];
[buildWidth resignFirstResponder];
[ridgeWidth resignFirstResponder];
[rafterWidth resignFirstResponder];
[hipWidth resignFirstResponder];
[eaveOverhang resignFirstResponder];
[spacing resignFirstResponder];
}
Если вы хотите скрыть клавиатуру, когда вы нажимаете кнопку, и у вас есть более одного UITextFields
в view
, то вы должны использовать:
[self.view endEditing:YES];
Нажмите в любом месте просмотра, и клавиатура исчезнет.
Попробуйте следующее:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[[self view] endEditing:YES];
}
Вы также можете выполнять итерацию по массиву представлений (например, подзаголовка 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];
}
Вы можете попробовать UITouch
метод, и в этом поле установите объект текстового поля и вызовите resignFirstResponder
когда вы прикоснетесь к экрану, клавиатура уйдет в отставку, я надеюсь, что это сработает для вас.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[currentSelectedTextField resignFirstResponder];
}