11
votes

Concentrez-vous sur la barre d'Uisearch mais le clavier n'apparaît pas

J'ai lu tellement de solution sur Comment puis-je concentrer une barre de recherche pour que le clavier apparaisse lorsque j'ouvre ma vue de recherche, et tout ce qui est comme celui-ci xxx

maintenant, j'ai essayé ceci, et j'ai aussi ajouté un xxx

parce que j'utilise un SearchDisplayController, mais jusqu'à présent, le meilleur résultat que je peux avoir est d'avoir le curseur sur la barre de recherche, l'UitailView Avec une superposition sur elle, mais toujours pas de clavier.

Si j'exécute le simulateur, je peux taper sur la barre de recherche avec le clavier de mon ordinateur, mais sur un iphone, je ne peux rien faire. < P> Si vous souhaitez regarder à mon code: http://nopaste.info/39fcda4771.htmlled/a > Le focus doit être exécuté dans la méthode de la vue ViewDiddload

Merci à nouveau.


1 commentaires

Même problème que je suis confronté, ma barre de recherche est en train de se concentrer. Sur le curseur de simulation clignotant, mais le clavier ne s'affiche pas. Avez-vous trouvé une solution


4 Réponses :


5
votes

Utilisez l'UISEARCHBARLEEGATE et déclarez la barre de recherche dans le fichier d'en-tête, comme celui-ci ... XXX PRE>

et déclarer votre barre de recherche dans loadView P>

- (void)viewDidAppear:(BOOL)animated {
//ensure the keyboard comes up from the start
[sBar becomeFirstResponder];    
[super viewDidAppear:animated];


2 commentaires

ne devrait pas [Super ViewDidAppear: Animated]; Appelez d'abord que [SBAR DevenezRespondester];


Fonctionne pour moi, j'appelle une barre de recherche active après [Super ViewDidAppear: Animated]



8
votes

Je montrais la barre de recherche sur TextFieldDidbeginetiting: (Uitextfield *) Méthode de déléguée Textfield.

Le clavier n'était pas montrant. Donc, pour ce premier démissionne de Textfield en tant que facilite. IE P>

-(void)callSearchBar{
[self.searchDisplayController setActive: YES animated: YES]; 
self.searchDisplayController.searchBar.hidden = NO;
[self.searchDisplayController.searchBar becomeFirstResponder];


3 commentaires

Cela a finalement travaillé pour moi! Avoir un uppote. Toute idée de la raison pour laquelle vous devriez faire ce [auto.searchDisplayController.searchbar devicefirstreresponder]; au lieu de [Self.searchbar deventefirSprester]; ?


Cela fonctionne bien, mais je recommanderais simplement de faire [auto recelsearchbar] à l'intérieur du ViewDidIDAppear: méthode. Nous ne savons pas de manière fiable combien de temps la transition du contrôleur peut prendre, de sorte que vous puissiez vous retrouver avec un effet laid et / ou des artefacts de TableView inattends si votre retard est trop court pour concentrer la barre de recherche . +1 Néanmoins :-)


@scotmrogowski Vous devez utiliser self.searchDisplayController.searchbar car vous avez probablement obtenu le uisearchDisplayController connecté à votre utablevoller , donc vous n'avez pas eu Une variable de la barre de recherche dans votre classe UitailViewController ", mais vous pouvez obtenir cette référence via la variable UisearchDisplayController`.



3
votes

La séquence matière xxx

si aucune chance, vérifiez si le délégué du contrôleur d'affichage de recherche est lié. Vaut également la peine de vérifier la couleur de la teinte de la barre de recherche.


0 commentaires

3
votes

sur le simulateur , assurez-vous de cliquer sur le clavier logiciel pour utiliser le clavier du simulateur comme vous pouvez le voir dans l'image.

Entrez la description de l'image ici


0 commentaires