Скрытие клавиатуры ios
У меня есть несколько текстовых вводов, и я могу скрыть клавиатуру всякий раз, когда я касаюсь фона, но только когда я вхожу в первое текстовое поле с именем textField1. теперь этот код должен быть простым, но я просто не могу его понять.
-(IBAction)backgroundTouched:(id)sender {
[textField1 resignFirstResponder];
[buildLength resignFirstResponder];
[buildWidth resignFirstResponder];
[ridgeWidth resignFirstResponder];
[rafterWidth resignFirstResponder];
[hipWidth resignFirstResponder];
[eaveOverhang resignFirstResponder];
[spacing resignFirstResponder];
}
4 ответа
Если вы хотите скрыть клавиатуру, когда вы нажимаете кнопку, и у вас есть более одного 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];
}