Разработка iOS SearchBar - PullRequest
11 голосов
/ 01 июня 2011

Я хочу иметь простую панель поиска в ObjectiveC. Использование UISearchBar или UISearchBarDelegate сбивает меня с толку. Я мог бы использовать UITextField, но у него нет внешнего вида панели поиска.

Как и на прикрепленном изображении, я просто хочу, чтобы с ним не ассоциировалась строка поиска UITableView. К изображению прикреплен TableView, но вы поняли смысл. Кроме того, после того, как кто-то вводит текст в панель поиска и нажимает «ввод», как мне получить текст?

enter image description here

ОБНОВЛЕНИЕ: Мне известны эти ссылки, которые обсуждают то же самое, но они более понятны при использовании таблиц.

http://blog.webscale.co.in/?p=228

http://ved -dimensions.blogspot.com / 2009/02 / iphone-разработка добавляющие-поиск-бар-in.html

Как реализовать панель поиска в iPhone?

Пример кода UISearchBar

UISearchBar в UITableViewController?

1 Ответ

33 голосов
/ 01 июня 2011

Просто сделайте так, чтобы ваш контроллер вида реализовал UISearchBarDelegate.В вашем xib-файле все, что вам нужно сделать, это добавить UISearchBar к вашему представлению и настроить его по мере необходимости, создать выход для него (на самом деле необязательно, но помогает быть явным) и назначить выход делегата для вашего контроллера представления.

Затем, чтобы отреагировать на события панели поиска, используйте необходимые методы протокола UISearchBarDelegate.Например:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [self handleSearch:searchBar];
}

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
    [self handleSearch:searchBar];
}

- (void)handleSearch:(UISearchBar *)searchBar {
    NSLog(@"User searched for %@", searchBar.text);
    [searchBar resignFirstResponder]; // if you want the keyboard to go away
}

- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar {
    NSLog(@"User canceled search");
    [searchBar resignFirstResponder]; // if you want the keyboard to go away
}
...