弹出一个新界面,里面的searchbar就是不能为第一响应事件,经过一番查找终于找到了解决方法
1、设置代理
_searchCtrl.searchResultsUpdater = self;
_searchCtrl.delegate = self; //有三个代理这要是这个代理没设置,坑死了
_searchCtrl.searchBar.delegate = self;
2、
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.searchCtrl.active = true; //把active设为yes
}
- (void)didPresentSearchController:(UISearchController *)searchController
{
dispatch_async(dispatch_get_main_queue(), ^{
[self.searchCtrl.searchBar becomeFirstResponder]; //放主线程执行这个
});
}
3、想resignFirstResponder
设置 self.searchController.active = NO;
[self.searchController.searchBar resignFirstResponder];
就行了