comment changer l'étiquette "No Results", en utilisant un searchDisplayController?searchDisplayController: changer l'étiquette "No Results"
Cordialement
comment changer l'étiquette "No Results", en utilisant un searchDisplayController?searchDisplayController: changer l'étiquette "No Results"
Cordialement
Ce n'est pas directement accessible, de sorte que vous devrez le faire à l'ancienne et passer au crible à la main à travers les sous-vues de votre searchDisplayController.searchResultsTableView
. Voici un exemple:
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";
}
}
Je ne recommanderais pas cela car vous comptez sur le comportement interne du searchResultsTableView
qui est plus que probable de changer à un moment donné, casser votre application. Ouvrir une demande de bug/fonctionnalité avec Apple serait un bon moyen d'y aller.
J'ai réussi à supprimer l'étiquette en n'ayant jamais un jeu de résultats vide.
S'il n'y a aucun résultat, car ils sont récupérés sur le serveur, réinitialisez votre source de données sur une seule ligne et affichez une cellule vide.
De plus, la logique d'utilisation à refeuse pour sélectionner la cellule « factice »:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *listItem = [self.filteredListContent objectAtIndex:indexPath.row];
if ([listItem isEqualToString:@""]) {
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
}
J'ai aussi trouvé nécessaire d'ajouter une logique de cellule « factice » dans la méthode déléguée willSelect
:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *listItem = [self.filteredListContent objectAtIndex:indexPath.row];
if ([listItem isEqualToString:@""]) {
return nil;
}
return indexPath;
}
Cool, merci beaucoup ... – Stefan
Mais quand faites-vous le peaufinage? Ce 'UILabel' apparaît dans les 'sous-vues' seulement après qu'il a été réellement affiché ... –
Oui, où mettons-nous ce code ??? – Napolux