用户使用 UISearchBar 时更改 UIStatusBarStyle
Posted
技术标签:
【中文标题】用户使用 UISearchBar 时更改 UIStatusBarStyle【英文标题】:Changing UIStatusBarStyle when user uses UISearchBar 【发布时间】:2013-12-21 22:38:15 【问题描述】:我整天都在努力解决这个问题。我的应用程序有一个夜间主题,但是当您在显示结果后触摸键盘和 UISearchBar 之间的区域时会出现问题,因为这不会触发 UISearchBar 的取消方法。我的应用程序的日主题(正常)一切正常,但是在尝试将状态栏设置为默认样式时出现问题。重申一下:问题是这样发生的:启用夜间模式,在 UISearchBar 中键入一个字母,它没有显示任何结果,用户在表格视图上触摸和滚动,这会触发 UISearchBar 的 do end 编辑方法(键盘然后关闭),进而使状态栏样式错误。
感谢您提供的任何帮助!
代码:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
return YES;
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (appDelegate.nightThemeEnabled == NO)
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
else
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (appDelegate.nightThemeEnabled == NO)
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
else
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
【问题讨论】:
【参考方案1】:使用我在另一个 *** 问题中提供的答案解决了这个问题:How to show a UISearchBar from top of screen for table view controller
【讨论】:
以上是关于用户使用 UISearchBar 时更改 UIStatusBarStyle的主要内容,如果未能解决你的问题,请参考以下文章
如果单击 UISearchBar,则更改 UITableView 位置:[使用 ModernSearchBar]