Как я могу выбрать несколько областей в UISearchBar? - PullRequest
1 голос
/ 21 июля 2009

Я работаю над приложением iPhone, которое имеет UISearchBar, который заполняет табличное представление. У меня есть различные варианты в моем поиске, которые можно легко подключить к функциональности «видимости». Однако мне действительно нужно иметь две группы кнопок. Одна группа - это «область действия», определяющая тип поиска, и одна группа, которая указывает порядок сортировки возвращаемых результатов. Насколько я могу судить, вы можете выбрать только один элемент «видимости» одновременно, используя обычные функции.

Я загружаю только небольшую часть возможных результатов с каждым запросом (для скорости), поэтому я не могу отсортировать, используя только табличное представление. Его нужно каждый раз передавать в мой поисковый запрос, поэтому мне нужно, чтобы пользователь мог выбирать как тип поиска, так и порядок поиска.

Прямо сейчас у меня просто есть два разных UISegmentedControl под моим UISearchBar, и я делаю все вручную. Это работает. Однако, даже если я сделаю фон сероватым, он не будет выглядеть как часть панели поиска (например, область действия в mail.app).

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

1 Ответ

1 голос
/ 27 сентября 2009

Я не уверен, поможет ли это, но вы можете получить доступ к сегментированному элементу управления, который используется в строке поиска, с кодом ниже. Может быть, вы можете настроить или заменить его на что-то?

// Find scope segmented control
for (UIView *v in searchBar.subviews) {
    if ([v isMemberOfClass:[UISegmentedControl class]]) {   

        // You've got the segmented control!        
        UISegmentedControl *scope = (UISegmentedControl *)v;

        // Do your thing here...

    }
}
...