searchDisplayController: изменить метку «Нет результатов»

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

С уважением

Ответы на вопрос(2)

Решение Вопроса

поэтому вам придется сделать это по старинке и вручную просеять подпредставления вашего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 было бы хорошим способом.

 Stefan22 июл. 2009 г., 21:08
Круто, большое спасибо ...
 09 апр. 2010 г., 11:14
Но когда вы делаете настройку? этоUILabel всплывает вsubviews только после того, как это было фактически отображено ...
 12 окт. 2012 г., 00:11
Да куда мы поместим этот код ???
 14 июн. 2013 г., 13:47
Я положил это в- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView, Оно работает.
 31 мая 2016 г., 07:47
Большое спасибо, вы сэкономили мое время

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

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

Кроме того, используйте логику для ссылки, чтобы выбрать & 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;
}

Ваш ответ на вопрос