J'ai quelques entrées de texte et je peux masquer le clavier chaque fois que je touche l'arrière-plan, mais uniquement lorsque je saisis le nom de la première zone de texte textField1. maintenant ce code devrait être simple mais je n'arrive pas à le comprendre.
-(IBAction)backgroundTouched:(id)sender {
[textField1 resignFirstResponder];
[buildLength resignFirstResponder];
[buildWidth resignFirstResponder];
[ridgeWidth resignFirstResponder];
[rafterWidth resignFirstResponder];
[hipWidth resignFirstResponder];
[eaveOverhang resignFirstResponder];
[spacing resignFirstResponder];
}
Si vous souhaitez masquer le clavier lorsque vous appuyez sur un bouton et que vous avez plusieurs UITextFields
dans votre view
, vous devez utiliser:
[self.view endEditing:YES];
Appuyez n'importe où sur la vue et le clavier disparaîtra.
Essaye ça:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[[self view] endEditing:YES];
}
Vous pouvez également parcourir un tableau de vues (telles que les sous-vues de votre UIView) et démissionner manuellement du clavier, c'est bien si vous ne voulez pas démissionner sur TOUTES les sous-vues de votre UIView parent.
- (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];
}
Vous pouvez essayer la méthode UITouch
, et dans cet ensemble, votre objet champ de texte et appeler resignFirstResponder
chaque fois que vous touchez l'écran, le clavier démissionne, j'espère que cela fonctionnera pour vous.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[currentSelectedTextField resignFirstResponder];
}