【发布时间】:2017-10-05 12:04:13
【问题描述】:
我更新了我的应用以处理导航栏下搜索栏的新 iOS 11 搜索行为:
- (void)viewDidLoad
{
[super viewDidLoad];
UISearchController *searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.navigationItem.searchController = searchController;
// Those are optional, but that's what I want my UI to look like
searchController.hidesNavigationBarDuringPresentation = NO;
searchController.obscuresBackgroundDuringPresentation = NO;
self.navigationItem.hidesSearchBarWhenScrolling = NO;
}
我的视图上还有一个按钮,点击它会关闭当前的视图控制器:
- (IBAction)dismiss:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
问题是:如果 searchController 的 searchBar 在用户点击按钮时具有焦点(即是第一响应者),则视图控制器不会关闭。
- 第一次点击按钮时,searchBar 失去焦点并且键盘隐藏(就像调用了
[searchBar resignFirstResponder]); - 在第二次点击时,视图控制器终于被关闭了。
如何让第一次点击按钮立即关闭视图控制器(作为副作用移除 searchBar 的焦点)?
【问题讨论】:
标签: ios uiviewcontroller uisearchcontroller