I have a UISearchBar
. I want the the keyboard to go away as soon as user hits search...i did try resignFirstResponder
but that didn't work. any help would be appreciated
- (void)viewDidLoad {
[super viewDidLoad];
self.title = NSLocalizedString(@"Songs", @"Search for songs");
NSMutableArray *array = [[NSArray alloc]initWithObjects: @"Book_1", @"Book 2", @"Book _ 4", nil];
self.booksArray = array;
[array release];
search.delegate=self;
// Uncomment the following line to display开发者_开发知识库 an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
thanks TC
Please make sure of following things.(I hope you are talking about search Button of keyboard.)
- You have connected your
IBOutlet
of searchBar with its variablesearch
. - You are not de-referring search variable anywhere in your code(reassigning it).
- Your
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
method is in sameviewcontroller
as searchBar is in. - Please NSLog(@"Search Bar Instace : %@",search); in viewDidLoad method and
searchBarSearchButtonClicked
and verify that both instances are same if not then you aresearch
is getting reassigned somewhere in code. - Just after
[searchBar resignFirstResponder];
NSLog(@"isFirstResponder : %d",[searchbar isFirstResponder]); andNSLog(@"Next Responder : %@",[searchBar nextResponder]);
- Is
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
method is being called when you tap search Button of keyboard? Make sure there are no keyboardresponder
(liketextField
,textView
or othersearchBar
) is added behind yoursearchBar
may be unintentionally. Please check it through xib also.
Thanks,
It should work by implementing the respond methods at the delegate object:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
}
Reference: http://www.iphonedevsdk.com/forum/iphone-sdk-development/7148-problem-uisearchbar-navigation-controller.html#post59467
精彩评论