2010-11-26 4 views
13

J'utilise -(void)textFieldDidBeginEditing:(UITextField *)sender cette fonction dans mon application. ceci n'est pas appelé quand je sélectionne le champ de texte. est ici le code ...- (void) textFieldDidBeginEditing: (UITextField *) expéditeur .. cette fonction n'est pas appelée quand je sélectionne le champ de texte?

-(void)textFieldDidBeginEditing:(UITextField *)sender{ 
    if([sender isEqual:txtName])//txtName is the IBOutlet of the UITextField 
    { 
     NSLog(@"Name"); 
    } 
    else{ 
     NSLog(@"NO_Name"); 
    } 
} 
+5

Vous avez demandé 10 questions déjà et accepté aucune réponse à ce jour ... s'il vous plaît accepter des réponses à vos questions afin que les gens se sentiront plus enclins à vous aider. – DarkDust

Répondre

26

Avez-vous défini délégué de l'instance de UITextField au contrôleur de vue en cours comme celui-ci:

textField.delegate = self; (auto signifie l'instance où le callback textFieldDidBeginEditing est substitué)

+0

Son fonctionnement Sanniv ..., merci pour votre précieux commentaire – Chinju

4

Vous devez inclure UITextFieldDelegate dans le fichier .h

@interface yourViewController : UIViewController <UITextFieldDelegate> 
1

Vous devez inclure UITextFieldDelegate dans votre fichier .h fichier, et aussi ajouter YourTextField.delegate = self

11

Assurez-vous de compléter 2 étapes simples

1 - Mettre en oeuvre le délégué UITextFieldDelegate

@interface yourViewController : UIViewController <UITextFieldDelegate>

2 - Définir le délégué

yourTextField.delegate = self

Si vous avez plusieurs champs de texte dans votre vue, vous peut définir délégué pour tous vos champs de texte comme celui-ci

for (id subView in self.view.subviews) 
    { 
     if ([subView isKindOfClass:[UITextField class]]) { 
      [subView setDelegate:self]; 
     } 
    } 
Questions connexes