2010-04-16 4 views
5

J'ai une exigence où j'ai un champ de texte dans une vue. Lorsque je veux ouvrir la vue en basculant l'onglet (Application TabBased), la première fois que la vue est chargée, le clavier apparaît parce que la méthode loadview est appelée. Mais quand je passe à tab2 et à nouveau passer à tab1 à nouveau, charger l'affichage n'est pas appelé. Je veux que le clavier apparaisse chaque fois que j'ouvre la page tab1.Comment ouvrir la vue avec le clavier apparaissant lorsque la vue est déjà chargée?

Répondre

10

Utilisez -viewWillAppear: dans votre contrôleur de vue d'envoyer votre champ de texte un message -becomeFirstResponder, par exemple:

- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [myTextField becomeFirstResponder]; 
} 
+0

Je l'ai fait la même chose ... Mais la méthode viewWillAppear est pas appelé à chaque fois ...... Voici le code - (void) viewWillAppear: (BOOL) animé { [super viewWillAppear: animé]; \t [searchForProduct getFirstResponder]; } Veuillez nous aider –

+1

Votre code devrait fonctionner, en supposant que tous les objets sont instanciés et câblés. Essayez d'ajouter une instruction 'NSLog' pour vérifier que' -viewWillAppear: 'est appelé. Assurez-vous également que 'searchForProduct' n'est pas' nil' et/ou qu'il est correctement connecté si vous utilisez Interface Builder pour votre affichage. –

+0

searchForProduct n'est pas libéré .. Il contient l'allocation de mémoire ... Le problème est viewWillAppear La méthode n'est jamais appelée ... –

Questions connexes