no se puede hacer clic en la celda de vista de tabla de la barra de búsqueda

Tengo una vista de tabla que contiene una matriz de nombres. La barra de búsqueda funciona perfectamente filtrando los nombres en la vista de tabla.

El problema es el didSelectRowAtIndexpath no se dispara al hacer clic en la celda de vista de tabla de búsqueda. ¿Podrías ayudarme?

¿Qué es lo que me falta? ¿Debo incluir algún delegado especial para involucrar el clic de celda de vista de tabla de búsqueda?

A continuación se muestra la imagen y el código.

enter image description here

  -(void)search
 {
nameArray = [[NSMutableArray alloc] init];
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 160, 44)];
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];

searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
self.tableViewFriendsList.tableHeaderView = searchBar;
 }
 - (void)searchDisplayController:(UISearchDisplayController *)controller
 willShowSearchResultsTableView:(UITableView *)tableView
 {
 [tableView setRowHeight:70];
 [tableView reloadData];
 }
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {       

   if (tableView == self.tableViewFriendsList) {
    NSString *friendsID =[[[self.friendsDictionary objectForKey:@"data"] objectAtIndex:indexPath.row] objectForKey:@"id"];
    [[FacebookHelper sharedFacebookHelper] postOnWallWithDelegate:self andID:friendsID];
}

if (tableView == self.searchDisplayController.searchResultsTableView) {
    NSLog(@"I ve come here");
    NSString *friendsID =[friendsListIdArray objectAtIndex:indexPath.row];
    [[FacebookHelper sharedFacebookHelper] postOnWallWithDelegate:self andID:friendsID];
}
}

preguntado el 28 de julio de 12 a las 07:07

2 Respuestas

Te olvidaste de configurar

searchController.searchResultsDelegate = self;

Respondido 28 Jul 12, 09:07

Hago algo en uno de mis proyectos que puede ser de ayuda:

// add gesture to detect when table view is being tapped so that keyboard may be dismissed
    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self 
                                                                                        action:@selector(dismissKeyboard)];
    gestureRecognizer.cancelsTouchesInView = NO;
    [self.tableView addGestureRecognizer:gestureRecognizer];

Además, me pregunto por qué tienes una barra de búsqueda. dentro de una celda de tabla. ¿Le importaría publicar una captura de pantalla en su aplicación? Me temo que puede estar haciendo más trabajo del necesario.

Respondido 28 Jul 12, 11:07

el problema es que no puedo activar didselectRowAtIndexpath para la tabla de búsqueda. Cuando se hace clic en la celda de vista de la tabla de búsqueda, no tengo problemas para descartar el teclado ... alguna idea: user578386

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.