Как сделать так, чтобы область видимости UISearchBar всегда была видна? - PullRequest
7 голосов
/ 10 августа 2010

Вот моя последняя проблема с iPhone SDK.

У меня настроен UISearchBar и его делегат.Кроме того, когда я загружаю свое представление, я звоню

self.searchDisplayController.searchBar.showsScopeBar = YES;

Таким образом, когда мое представление впервые представлено, я вижу панель области, как и ожидалось.Но если коснуться внутри панели поиска, а затем за ее пределами (или даже если выполнить поиск, а затем отменить его), панель областей снова будет скрыта.

Поэтому мой вопрос: возможно ли получить область действия?панель всегда видна?Даже после выполнения поиска?

Большое спасибо.

1 Ответ

10 голосов
/ 09 ноября 2010

UISearchDisplayController скрывает область видимости для вас.

Способ обойти это - создать подкласс UISearchBar и переопределить реализацию setShowsScopeBar:

@interface MySearchBar : UISearchBar {

}

@end

@implementation MySearchBar

- (void) setShowsScopeBar:(BOOL) show
{
    [super setShowsScopeBar: YES]; // always show!
}

@end

Затем в Интерфейсном Разработчике измените класс панели поиска, который у вас есть в вашем представлении (связан с UISearchDisplayController), на новый тип класса - в этом примере MySearchBar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...