UISearchBar в UIToolbar не будет отображать кнопку отмены - PullRequest
5 голосов
/ 07 декабря 2010

У меня есть UISearchBar, вложенный как UIBarButtonItem в UIToolbar. Базовый функционал работает, но кнопка отмены и панель области видимости не отображаются. Я попытался включить их в конструкторе интерфейсов, а также попытался вручную вызвать [searchBar setShowsCancelButton:YES], но ни один из методов не работает. Есть идеи?

Это на iPad. Я пробовал в iOS 3, и в 4.2 он тоже не работает.

Ответы [ 3 ]

11 голосов
/ 09 января 2011

Вам нужно обернуть UISearchBar другим представлением.

UISearchBar *searchBar = [UISearchBar new];
UIView *searchBarContainer = [[UIView alloc] initWithFrame:searchBar.frame];
[searchBarContainer addSubview:searchBar];
UIBarButtonItem *searchBarItem =
    [[UIBarButtonItem alloc] initWithCustomView:searchBarContainer];
3 голосов
/ 30 декабря 2010

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

0 голосов
/ 19 сентября 2012

действительно ли необходимо когда-либо использовать кнопку «Отмена» в строке поиска? Просто используйте метод textDidChange, чтобы увидеть, была ли строка очищена, и используйте это для того же действия, что и при отмене.

...