Добавление метода SearchBar - PullRequest
       2

Добавление метода SearchBar

0 голосов
/ 01 февраля 2012

Когда мы добавляем текст к uisearchbar, мы видим крест справа от него. Когда мы нажимаем на это, текст в uisearchbar очищается. Вот изображение , которое показывает крест.

Что мне нужно сделать, так это то, что мне нужно знать, как происходит событие, которое отреагирует на это пересечение (при нажатии).

Когда пользователь нажимает на этот крестик, мне нужно напечатать NSLog(@"Cross clicked");

Как я могу сделать это программно?

Ответы [ 4 ]

0 голосов
/ 12 февраля 2012

Если вы хотите получать уведомления, когда пользователь нажимает кнопку «x», внедрите протокол, предложенный предыдущими пользователями, и добавьте эту реализацию:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    if ([searchText isEqualToString:@""]) {
        NSLog(@"%@", @"clear button pressed");
    }
}

Единственный недостаток - этотакже вызывается, если пользователь возвращается на пустое поле поиска.Вам нужно будет найти какой-нибудь способ определить, было ли обратное нажатие самым последним нажатием клавиши, возможно, путем проверки местоположения последнего UITouch относительно известного местоположения клавиши возврата.

0 голосов
/ 01 февраля 2012

Используйте UISearchbarDelegate-Protocol в вашем UIViewController.Есть метод, который вызвал бы.

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText

http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UISearchBarDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UISearchBarDelegate

0 голосов
/ 01 февраля 2012

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

    UISearchBar *searchBar = yourSearchBar;
UITextField *searchtextfield = [searchBar.subviews objectAtIndex:1];
UIButton *cButton = [UIButton buttonWithType:UIButtonTypeCustom];
cButton.frame = CGRectMake(0, 0, 20 , 20);
cButton.backgroundColor = [UIColor clearColor];
[cButton setImage:[UIImage newImageFromResource:@"yourButtonImage"] forState:UIControlStateNormal];//If you want like the x button put image similar to it.
cButton.contentMode = UIViewContentModeScaleToFill;
[cButton addTarget:self action:@selector(clearButtonPressed) forControlEvents:UIControlEventTouchUpInside];//This is the custom event
[searchtextfield setRightView:cButton];
[searchtextfield setRightViewMode:UITextFieldViewModeAlways];
0 голосов
/ 01 февраля 2012

Попробуйте поискать в документации UISearchBarDelegate:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText // called when text changes (including clear)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...