Как изменить текст по умолчанию Кнопки отмены, которая появляется в UISearchBar +iPhone

Я разрабатываю Приложение, где я хотел изменить текст Строки поиска в SearchBar. Я хотел изменить текст Кнопки отмены Также, которая появляется рядом с SearchBar. Прежде, чем ввести любую строку в панель поиска мы wil получают Строку поиска как строку по умолчанию. Я хотел изменить текст той строки и когда мы нажимаем на ту панель поиска, мы получаем кнопку отмены рядом с панелью поиска, и я хотел изменить текст той кнопки отмены.

26
задан Cœur 31 December 2018 в 18:29
поделиться

2 ответа

Вам также необходимо иметь "searchBar setShowsCancelButton" перед процедурой.

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
    [theSearchBar setShowsCancelButton:YES animated:NO];
    for (UIView *subView in theSearchBar.subviews){
        if([subView isKindOfClass:[UIButton class]]){
            [(UIButton*)subView setTitle:@"Done" forState:UIControlStateNormal];
        }
    }
}

Также обратите внимание: используйте UIButton, чтобы избежать проблем с Apple!

35
ответ дан 28 November 2019 в 06:01
поделиться

Если под «Строкой поиска» вы имеете в виду заполнитель, то это должно быть сделано:

[searchBar setPlaceholder:@"Whatever you want"];

Что касается изменения текста кнопки отмены, это может быть немного сложнее. Apple не использует для этого ни стандартный UIBarButtonItem, ни даже нестандартный UIButton. Вместо этого они используют UINavigationButton для кнопки отмены в строке поиска. Поскольку это не документированный общедоступный класс, попытка его изменения вполне может привести к отклонению вашего приложения из App Store. Если вы действительно хотите рискнуть получить отказ, вы можете выполнить поиск в подпредставлениях searchBar:

for(UIView *view in [searchBar subviews]) {
    if([view isKindOfClass:[NSClassFromString(@"UINavigationButton") class]]) {
        [(UIBarItem *)view setTitle:@"Whatever you want"];
    }
}

Обратите внимание, что кнопка отмены загружается лениво, поэтому вам придется выполнить эту модификацию, когда панель поиска будет активирована пользователем.

4
ответ дан 28 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

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