Faire UISearchBar premier intervenant lors de l'Affichage des Charges
J'ai un simple UIViewController
et un UISearchBar
, lorsque le point de vue des charges, je veux avoir la barre de recherche deviennent les premiers à avoir répondu tout de suite, alors que le clavier est de montrer et ils peuvent commencer à taper leur requête immédiatement. J'ai essayé de faire dans viewWillAppear
comme ci-dessous sans aucune chance:
- (void)viewWillAppear:(BOOL)animated
{
[productSearchBar becomeFirstResponder];
[super viewWillAppear:animated];
}
Est-il un autre endroit que je devrais appeler becomeFirstResponder
sur le UISearchBar
ou devrais-je appeler en quelque chose de complètement différent?
InformationsquelleAutor John Duff | 2010-02-15
Vous devez vous connecter pour publier un commentaire.
Déplacer ce
-viewDidAppear
et il doit être fine.-becomeFirstResponder
tire vers le haut du clavier (comme vous l'avez remarqué), et vous ne devriez pas faire des animations avant que vous êtes à l'écran. Vous pouvez obtenir bizarre interactions.Si elle ne fait pas n'importe quoi, alors presque certainement
productSearchBar
est un IBOutlet et vous avez oublié de le fait de les relier à laUISearchBar
dans Interface Builder. C'est la raison n ° 1 pour "rien ne se passe" dans l'INTERFACE utilisateur.Noter que vous ne devriez pas accéder à votre ivars de cette façon; vous devriez en faire un bien et se réfèrent uniquement à
self.productSearchBar
. Apple a enfin posté une explication correcte de ce dans leur Gestion de la mémoire de Plume Objets. Ne jamais accéder à votre ivars à l'extérieur d'un accesseur ou-dealloc
. Cette règle, vous fera économiser de nombreuses heures de débogage.