Adina Marin
Adina Marin

Reputation: 663

Search Bar click detect

I have a search bar and i want to detect when the user click it , and after to disable a button while the user is editing in search bar. How can i do this , because i was trying to do wha you will see above but it's never called.

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
        NSLog(@"yes");
    }

Other methods like searchDisplayController are called.I set also

self.searchBar.delegate=self 

but no result.

Upvotes: 3

Views: 13247

Answers (3)

Yalcin Ozdemir
Yalcin Ozdemir

Reputation: 524

Swift version of the answer:

  1. Add UISearchBarDelegate to your view controller Assign its
  2. delegate to self searchBar.delegate = self Use
  3. searchBarShouldEndEditing or searchBarSearchButtonClicked

     func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
       return true
    }
    

or

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
}

Upvotes: 4

Marius Constantinescu
Marius Constantinescu

Reputation: 659

The searchBarSearchButtonClicked: method is called when the user taps the "Search" (return) button on the keyboard. From you question, I understand that you want to detect when the user taps the search bar, to enter text for the search. If that's the case, you need to implement the searchBarShouldBeginEditing: or searchBarTextDidBeginEditing: methods in the UISearchBarDelegate. For example,

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
    NSLog(@"yes");
    return YES;
}

Upvotes: 2

Gaurav Parmar
Gaurav Parmar

Reputation: 457

You can directly use the delegate of the UIsearchbar for getting the click event. you can use this delegate for it for checking the click. and for getting end editing this second one.

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
    NSLog(@"Yes");
    return YES;
}

End Editing

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
{
    return YES;
}

Upvotes: 11

Related Questions