Сброс UISearchbar программно - PullRequest
7 голосов
/ 19 января 2012

Существует ли возможность программного сброса UISearchbar с searchDisplayController, который активен и уже содержит текст?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if (tableView == self.searchDisplayController.searchResultsTableView) {
       searchDisplayController.searchResultsTableView.hidden = YES;
       searchBar.showsCancelButton = NO;
       [searchBar resignFirstResponder];
    }
}

Это решение работает, но в панели поиска все еще есть текст. Если я добавлю эти строки кода:

searchBar.text = @"";

Всегда остается черный прозрачный вид.

Какие-нибудь решения?

Ответы [ 6 ]

6 голосов
/ 19 января 2012

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

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    searchBar.text = @"";
    [searchBar resignFirstResponder];   
}
4 голосов
/ 10 августа 2012

Вы уверены, что ищете UISearchDisplayController.active

Из SDK:

@property(nonatomic, getter=isActive) BOOL active

Если вы установите это значение напрямую, любое изменение будет выполняться без анимации.Используйте setActive: animated: если изменение состояния должно быть анимированным.

Когда пользователь фокусируется на поле поиска на панели управляемого поиска, контроллер отображения поиска автоматически отображает интерфейс поиска.Это свойство можно использовать для отображения интерфейса поиска.

1 голос
/ 14 сентября 2016

Эта нить настолько старая, что в ней есть пыль. Все еще здесь мы в быстром, так что

<#your UISearchController variable#>.isActive = false
0 голосов
/ 19 января 2012

Вы также можете явно скрыть ResultsTableView, если это то, что вы хотите:

searchDC.searchResultsTableView.hidden=YES;

(searchDC является экземпляром UISearchDisplayController)

Это поможет вам скрыть кнопку Отмена и прочее: http://www.alexandre -gomes.com /? P = 418

0 голосов
/ 19 января 2012
[self.searchBar resignFirstResponder]
0 голосов
/ 19 января 2012

вам не нужно удалиться первый ответчик

...