1

Je sais que je peux mettre showsCancelButton-NO pour une UISearchBar ... jusqu'à ce que vous appuyez sur le champ de texte de la barre de recherche, puis sur le bouton Annuler apparaît de toute façon ! Existe-t-il un moyen d'afficher le "X" dans un cercle dans le champ de texte UISearchBar par opposition à l'affichage de ce bouton Annuler adjacent? Notez que ce bouton n'apparaît que pour moi lorsque le mode de recherche est actif, quel que soit le réglage pour showsCancelButton.Affichage UISearchBar « X » dans le champ texte par rapport adjacent bouton Annuler

Répondre

0

si vous utilisez le constructeur de l'interface, il est rès facile à show.It est là par default.i ont utilisé la barre de recherche dans mon application et le searchbartextfield a un « X » pour effacer le champ de texte

+0

Pour clarifier ma question: Je demande s'il y a un moyen d'afficher le "X" dans un cercle par rapport à (c'est-à-dire _instead_ de) ayant ce bouton Annuler séparé à côté de lui. Oui, le "X" dans un cercle apparaîtra certainement une fois que vous commencerez à saisir du texte, mais le bouton Annuler restera, quel que soit le réglage de showsCancelButton. –

0

Il se pourrait que le "X" est seulement destiné à effacer le champ de recherche et à ne pas annuler la recherche, et donc le bouton Annuler doit rester une fois qu'une recherche est en jeu, indépendamment de showsCancelButton.

2

essayer cette

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
{ 
    // only show the status bar's cancel button while in edit mode 
    mySearchBar.showsCancelButton = NO; 

} 
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar 
{ 
    mySearchBar.showsCancelButton = NO; 
} 

lorsque vous utilisez ce bouton d'annulation ne sera pas montré.

+0

Ne fonctionne pas pour moi du tout. Lorsque j'ajoute cela, le bouton Annuler apparaît toujours dès que je passe en mode d'édition, même lorsque je parcours la ligne qui effectue le réglage. –

+0

mais cela fonctionne dans mon application. –

+0

d'où vous avez ajouté UIsearchbar? –

1
for (UIView *searchBarSubview in [searchBar subviews]) { 

    if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) { 

     [(UITextField *)searchBarSubview setClearsOnBeginEditing:YES]; 
    } 
} 

pour permettre d'essayer le cancelButton searchBar.showsCancelButton = YES; Essayez les lignes ci-dessus du code.

+0

Merci! J'ai tendance à être hésitante à l'idée d'errer dans les sous-vues de cette façon (sauf si c'est documenté), mais vous avez certainement fait preuve de diligence raisonnable ici. Pour confirmer, le bouton Annuler reste-t-il ou est-il parti quand il est exécuté? –

+0

après l'exécution de ce code, il affichera le symbole x dans le champ de texte, si vous voulez activer cancelbutton set showsCancelButton = YES vérifier ma réponse mise à jour – Raj

Questions connexes