I have implemented searchbar which shows cancel button once user has focus in searchbar. For this I have written searchBar.showsCancelButton = YES;
in my searchBarTextDidBeginEditing
method. In searchBarSearchButtonClicked
, I resign the keyboard so that user can view full tableview.
Problem: At this point the searchbar cancel button is not responding. It only responds once searchbar gets focus again. Is this the default property of search bars cancel button or am I missing something in my code. I want to use cancel button without giving the focus in searchbar again.
I think its a default behavior of
UISearchBar
when it gets focus then and only then the cancel button will be enabled. You cannot get cancel button event ofUISearchBar
when it has no focus.So My suggession to achieve your task is,
UIBarButtonItem
with custom view asUISearchBar
UIBarButtonItem
named "Cancel" with actionYes you can make your
UISearchBar
cancel button responding. By default it is disable but your can access it's sub view and then set enable to cancel button.Follow this answer if you want some other logic Custom clear button in UISearchBar text field
This is search bar cancel button's default behaviour. If you want other functionality, you can just uncheck cancelbutton property for search bar and can use
UIButton
as cancel button.