最近项目想在点击searchBar时,默认弹出搜索历史,而不是背景变黑的dimming效果。在网上查找了几种方法,发现最好用的还是在keyboard弹出和隐藏时将searchDisplayController中得dimmingView背景色设置为透明。以下为代码:
1、首先在controller load的时候添加对弹出和隐藏键盘事件的监听:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillHideNotification object:nil];
2、实现keyboardWillShow函数:
- (void) keyboardWillShow
{
for(UIView * v in searchDisplayController_.searchContentsController.view.subviews)
{
if([v isMemberOfClass:[UIControl class]])
{
v.backgroundColor = [UIColor clearColor];
}
}
}