Текст UISearchDisplayController без результатов

Возможный дубликат:
Как я могу изменить строки кнопки "Отмена", метки "Нет результатов" в UISearchBar UISearchDisplayController?

В моем UISearchDisplayController я хочу изменить шрифт текста «Нет результатов», который отображается в searchResultsTableView, когда результаты недоступны.

Как я могу это сделать?


person Collin    schedule 09.12.2011    source источник


Ответы (1)


Ваш вопрос может быть дубликатом Как я могу изменить строки кнопки «Отмена», метки «Нет результатов» в UISearchBar UISearchDisplayController?

Вот модификация ответа, данного там:

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller 
        shouldReloadTableForSearchString:(NSString *)searchString {
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.001);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        for (UIView* v in self.sbc.searchResultsTableView.subviews) {
            if ([v isKindOfClass: [UILabel class]] && 
                    [[(UILabel*)v text] isEqualToString:@"No Results"]) {
                // .. do whatever you like to the UILabel here ..
                break;
            }
        }
    });
    return YES;
}

В основном то, что вы просите сделать, это просто получить доступ к UILabel, который отображает текст «Нет результатов». Официального способа сделать это нет. Обходной путь, предложенный на этой странице, заключается в поиске UILabel (путем перечисления всех подпредставлений таблицы результатов поиска) и изменении его. Обычно я не могу поощрять такого рода вещи, но я считаю отказ Apple предоставить официальный способ борьбы с этим ярлыком «Нет результатов» совершенно неприятным, поэтому в этой конкретной борьбе нет запретов.

person matt    schedule 28.12.2011
comment
Это не будет работать, если язык устройства не английский. - person Alastair Stuart; 11.04.2013
comment
@AlastairStuart Хороший вопрос. Кто живет от меча, тот от меча и умрет; Я сказал, что это отвратительный обходной путь. Apple действительно нужно позволить нам настроить это как-то официально. - person matt; 11.04.2013