2008-10-21 6 views
5

Je souhaite masquer l'UISearchBar la plupart du temps et ne l'appelle que lorsque l'utilisateur le souhaite. J'ai mis un UISearchBar dans Interface Builder et le cache derrière une vue, quand l'utilisateur clique sur un bouton, il appelle le code suivant, que j'espérais qu'il amènerait la barre de recherche à l'avant et glisser le clavier pour voir . Mais il ne le fait pas ....slide UISearchBar

- (IBAction)search:(id)sender 
{ 
    [mySearchBar performSelector:@selector(searchBarTextDidBeginEditing:)]; 
} 

Quelqu'un at-il une idée de comment activer UISearchBar par code?

Merci.

Merci pour vos réponses. Je viens de poster le code complet au cas où quelqu'un est intéressé

- (IBAction)search:(id)sender 
{ 
    mySearchBar.hidden = NO; 
    [mySearchBar becomeFirstResponder]; 
} 

#pragma mark UISearchBarDelegate delegate methods 

// called when keyboard search button pressed 
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 
{ 
    mySearchBar.hidden = YES; 
    [mySearchBar resignFirstResponder]; 
// Do something with the mySearchBar.text 
} 

// called when cancel button pressed 
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
    mySearchBar.hidden = YES; 
    [mySearchBar resignFirstResponder]; 
} 

Répondre

4

Si vous voulez pop le clavier, vous devez appeler [mySearchBar becomeFirstResponder]

+0

qui est grand indice, acclamations – Dan

2

J'ai placé la barre de recherche sur le dessus de la vue et l'ai caché. Alors vous avez juste besoin de:

mySearchBar.hidden = NO; 

pour l'afficher. En fonction de ce que vous faites, vous devrez peut-être redimensionner la vue sous-jacente (dans le cas contraire, la partie supérieure sera rognée). Et il ne "glisse" pas encore dans la vue. Il peut être plus facile d'utiliser une vue complètement nouvelle avec la barre de recherche attachée de manière appropriée.