2009-07-22 5 views

Respuesta

11

No es directamente accesible, por lo que tendrá que hacerlo de la manera antigua y tamizar manualmente a través de los subvistas de su searchDisplayController.searchResultsTableView. He aquí un ejemplo:

UITableView *tableView = self.searchDisplayController.searchResultsTableView; 
for(UIView *subview in tableView.subviews) { 
    if([subview class] == [UILabel class]) { 
     UILabel *lbl = (UILabel*)subview; // sv changed to subview. 
     lbl.text = @"My custom string"; 
    } 
} 

No recomendaría esto ya que usted está confiando en el comportamiento interno del searchResultsTableView que es más que probable que va a cambiar en algún momento, la fractura de su aplicación. Abrir una solicitud de error/función con Apple sería una buena manera de hacerlo aquí.

+0

Genial, muchas gracias ... – Stefan

+0

¿Pero cuándo haces el ajuste? Este 'UILabel' aparece en las 'subvistas' solo después de que se haya mostrado realmente ... –

+0

Sí, ¿dónde ponemos este código? – Napolux

14

He eliminado correctamente la etiqueta al no tener nunca un conjunto de resultados vacío.

Si no hay resultados porque se están obteniendo del servidor, restablezca su fuente de datos a una sola fila y haga que muestre una celda de vista de tabla en blanco.

Además, el uso de la lógica para refeuse para seleccionar la celda "de prueba":

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *listItem = [self.filteredListContent objectAtIndex:indexPath.row]; 
    if ([listItem isEqualToString:@""]) { 
     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    } 
} 

También he encontrado que es necesario añadir "de prueba" lógica célula en el método willSelect delegado:

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *listItem = [self.filteredListContent objectAtIndex:indexPath.row]; 
    if ([listItem isEqualToString:@""]) { 
     return nil; 
    } 
    return indexPath; 
} 
Cuestiones relacionadas