2012-03-07 16 views
5

Estoy usando un UISearchViewController de una manera ligeramente no convencional.cómo activar un UISearchDisplayController con un término preestablecido?

Mi UISearchBar está inicialmente oculto. Cuando el usuario toca un botón, muestro el UISearchBar y activo el UISearchViewController. También configuré el texto de la barra de búsqueda y le digo a la barra de búsqueda que se convierta en el primero en responder.

El problema es que la superposición gris creada por UISearchDisplayController permanece visible. No desaparece a menos que el texto que preestablezca se borre y el usuario comience a escribir de nuevo.

self.searchDisplayController.searchBar.hidden = NO; 
    self.searchDisplayController.searchBar.text = @"term"; 
    [self.searchDisplayController.searchBar becomeFirstResponder]; // this actually appears to activate everything 
    [self.searchDisplayController setActive: YES animated: YES]; // this activates but does not set the searchbar to 1st responder... 

¿Por qué el UISearchDisplayController continúan mostrando que es la superposición de color gris, y cómo puedo desactivarla?

Respuesta

12

cambiar el orden de las llamadas parecía ser el truco. no estoy seguro de por qué.

[self.searchDisplayController setActive: YES animated: YES]; 
self.searchDisplayController.searchBar.hidden = NO; 
self.searchDisplayController.searchBar.text = @"term"; 
[self.searchDisplayController.searchBar becomeFirstResponder]; 
+1

gracias por la sugerencia, tuve el mismo problema. Sin embargo, Stil tiene un problema: no puedo hacer que la opción SearchResultsTableView aparezca cuando el texto está vacío, tengo que hacer self.searchDisplayController.searchBar.text = @ "", que es un poco raro ... Si alguien tiene una mejor sugerencia, por favor, ¡yo sé! Debe ser posible porque la búsqueda de Google en el safari móvil hace exactamente lo mismo. – nmondollot

Cuestiones relacionadas