web-dev-qa-db-fra.com

IOS: action avec la touche Entrée de l'iPad KeyBoard

J'ai deux champs de texte, dans le premier champ de texte j'écris "Bonjour" et lorsque je pousse sur le clavier de l'iPad, je veux que dans le deuxième champ de texte apparaisse "Monde"; Comment puis-je utiliser enter pour créer une action dans mon application?

35
CrazyDev

Vous affectez généralement votre contrôleur de vue en tant que délégué du champ de texte, puis implémentez le textFieldShouldReturn: méthode, par exemple:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    otherTextField.text = @"World"
    return YES;
}
74
omz

Vous pouvez le faire en implémentant le protocole ITextFieldDelegate dans votre contrôleur. Par exemple, vous pourriez faire quelque chose comme:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == theFirstTextField && [textField.text isEqualToString:@"Hello"]) {
        theSecondTextField.text = @"World";
    }
    return YES;
}
9
aroth

Définissez votre contrôleur de vue comme délégué du champ de texte, puis implémentez

-(BOOL)textFieldShouldReturn:(UITextField *)textField

cela est appelé lorsque le bouton Entrée est enfoncé sur le clavier.

2
mbehan

C'est à peu près ce que vous feriez. Ajustement pour conditionner le type d'appareil (si vous ne voulez vraiment que l'iPad):

#pragma mark - UITextField Delegate

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{
    if (textField == self.firstTextField && [textField.text isEqualToString:@"Hello"]) {
        self.secondTextField.text = @"World";
    }
    return YES;
}
1
Alfie Hanssen