¿Por qué mi UISearchDisplayController se disparará el método debería ser el método de Forsearchstring cuando ingresé el texto en el campo de búsqueda?

StackOverflow https://stackoverflow.com/questions/2828640

Pregunta

He estado siguiendo el ejemplo del código TableSearch de Apple, pero no funciona para mí y creo que estoy haciendo todo de la misma manera que lo hicieron. El siguiente método debe dispararse cada vez que el usuario escriba algo en el cuadro de búsqueda, pero nunca se me dispara, solo en la aplicación de muestra.

Mi archivo de encabezado tiene esta implementación:

@interface ContactsTableVC : UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>{

No estoy seguro de lo que me falta o dónde más mirar.

Mi NSLOG nunca es llamado.

¡Gracias por la ayuda!

    - (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString searchScope:(NSInteger)searchOption
{
    NSLog(@"The shouldreloadtableforsearchstring method has been called!");
    [self filterContentForSearchText:searchString];

    // Return YES to cause the search result table view to be reloaded.
    return YES;
}
¿Fue útil?

Solución 2

Dang me siento tonto. Miré todo al menos 100 veces para asegurarme de que iba bien y, como suele suceder, era algo pequeño que pasaba por alto. Mi TableViewController XIB de alguna manera tenía dos SearchDisplayControllers en Interface Builder. Estaba en el primer momento al primero, que no estaba vinculado a la barra de búsqueda. Solo tenía que eliminar ese primer SearchDisplayController y todo comenzó a funcionar ...

Gracias @jordan por la respuesta rápida. ¡Muy apreciado!

Otros consejos

¿Ha agregado el Delegate UISearchDisplayDelegate en el archivo @Interface ContactStableVC?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top