Вопрос по cocoa-touch, searchdisplaycontroller, iphone, uikit – searchDisplayController: изменить метку «Нет результатов»

7

Как изменить метку «Нет результатов» при использовании searchDisplayController?

С уважением

Ваш Ответ

2   ответа
14

так как никогда не имел пустого набора результатов.

Если результатов нет, потому что они выбираются с сервера, сбросьте источник данных в одну строку, и он отобразит пустую ячейку табличного представления.

Кроме того, используйте логику для ссылки, чтобы выбрать & quot; пустышку & quot; клетка:

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

Я также обнаружил, что необходимо добавить «пустышку» клеточная логика вwillSelect метод делегата:

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

поэтому вам придется сделать это по старинке и вручную просеять подпредставления вашегоsearchDisplayController.searchResultsTableView, Вот один пример:

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

Я бы не рекомендовал это, поскольку вы полагаетесь на внутреннее поведениеsearchResultsTableView что, скорее всего, изменится в какой-то момент, сломая ваше приложение. Открытие запроса об ошибке / функции в Apple было бы хорошим способом.

Большое спасибо, вы сэкономили мое время
Круто, большое спасибо ... Stefan
Да куда мы поместим этот код ???
Я положил это в- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView, Оно работает.
Но когда вы делаете настройку? этоUILabel всплывает вsubviews только после того, как это было фактически отображено ...

Похожие вопросы