2008-10-21 11 views
5

Me gustaría ocultar el UISearchBar la mayor parte del tiempo y solo llamarlo para que aparezca cuando el usuario lo desee.deslizamiento UISearchBar

He puesto un UISearchBar en Interface Builder y lo oculto detrás de una vista, cuando el usuario hace clic en un botón, llama al siguiente código, que esperaba que llevara la barra de búsqueda al frente y deslizara el teclado para ver . Pero no ...

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

¿Alguien tiene alguna idea de cómo activar UISearchBar por código?

Gracias.

Gracias por sus respuestas. Acabo de publicar el código completo en caso de que alguien esté interesado

- (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]; 
} 

Respuesta

4

Si desea hacer estallar el teclado, tendrá que llamar [mySearchBar becomeFirstResponder]

+0

que es grande pista, aplausos – Dan

2

Coloqué la barra de búsqueda en la parte superior de la vista y la oculté. Entonces solo necesita:

mySearchBar.hidden = NO; 

para mostrarlo. Dependiendo de lo que esté haciendo, es posible que también deba cambiar el tamaño de la vista subyacente (de lo contrario, la parte superior se recortará). Y todavía no se "desliza" a la vista. Puede ser más fácil usar una vista completamente nueva con la barra de búsqueda adjunta adecuadamente.