2009-05-14 6 views

Répondre

30

Je me suis juste sortir ...

[mytextField addTarget:self 
     action:@selector(methodToFire:) 
     forControlEvents:UIControlEventEditingDidEndOnExit]; 
4

Dans votre contrôleur de vue de mettre en œuvre la méthode suivante:

- (void)textFieldDidEndEditing:(UITextField *)textField{ 

//do stuff 

} 

Ne pas oublier de mettre le délégué à viewDidLoad ou initialiseur:

myTextField.delegate = self; 
+0

Cela ne fonctionne pas ... –

+0

uou doivent assurer que le délégué est réglé. De plus, textField doit démissionner du premier répondeur, ce qui fait disparaître le clavier comme un indice que vous avez bien fait. –

+0

Ce que vous avez posté peut-être raison, je ne sais pas. Cependant, le code que j'ai posté ci-dessus est plus élégant et accomplit exactement ce que je cherchais. –

1

Pour tous ceux qui envisagent d'utiliser cette cible pour créer un autre champ textFirstResponder pour créer un Option de bouton 'Suivant' qui donne l'impression de "tabuler" à travers textFields Je recommanderais d'utiliser textFieldShouldReturn à la place avec du code comme celui-ci. Permettez-moi de vous dire que cela fonctionne si bien vous vous sentirez comme vous chevauchant une licorne:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 

    if([textField isEqual:_textField1]){ 
     [_textField2 becomeFirstResponder]; 
     return NO; 
    }else if([textField isEqual:_textField2]){ 
     [_textField3 becomeFirstResponder]; 
     return NO; 
    } 

    return YES; 
}