searchDisplayController: change the label “No Results”

前端 未结 2 1004
悲哀的现实
悲哀的现实 2020-12-28 10:29

how do I change the label \"No Results\", when using a searchDisplayController?

Regards

相关标签:
2条回答
  • 2020-12-28 11:02

    I've successfully removed the label by never having an empty result set.

    If there are no results because they're being fetched from the server, reset your data source to a single row, and have it display a blank table view cell.

    Additionally, use logic to refeuse to select the "dummy" cell:

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

    I've also found it necessary to add "dummy" cell logic into the willSelect delegate method:

    - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSString *listItem = [self.filteredListContent objectAtIndex:indexPath.row];
        if ([listItem isEqualToString:@""]) {
            return nil;
        }
        return indexPath;
    }
    
    0 讨论(0)
  • 2020-12-28 11:28

    It's not directly accessible, so you'll have to do it the old fashioned way and manually sift through the subviews of your searchDisplayController.searchResultsTableView. Here's one example:

    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";
         }
    }
    

    I wouldn't recommend this since you're relying on internal behavior of the searchResultsTableView which is more than likely going to change at some point, breaking your app. Opening a bug/feature request with Apple would be a good way to go here.

    0 讨论(0)
提交回复
热议问题