我有一个表视图,其中包含另一个文件中的数据源/委托。此外,表视图上方还有一个属于第一个文件的搜索栏。在滚动时隐藏键盘,我需要调用:
[self.searchBar resignFirstResponder]
但是
(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
方法在委托中。那么在这种情况下滚动时如何隐藏键盘呢?
谢谢!
答案 0 :(得分:1)
您可以在scrollviewwillbegindragging中发送通知。 tableview委托:
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
[[NSNotificationCenter defaultCenter] postNotificationName:@"resign" object:nil];
}
搜索栏委托:
-(void)viewDidLoad{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(goTo:) name:@"resign" object:nil];
}
-(void)goTo:(NSNotification*)notification {
[self.searchBar resignFirstResponder];
}
答案 1 :(得分:0)
有很多方法可以做,其中有几个是下面的。
选项1: 初始化表对象后添加以下行
[yourTableView setKeyboardDismissMode:UIScrollViewKeyboardDismissModeOnDrag];
或
选项2: 得到你的tableview的superview(我希望它作为aViewcontrollerObj.view)并强行结束它的编辑。
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
UIView *tableviewSuperView = yourTableView.superview;
[tableviewSuperView endEditing:true];
}
希望有所帮助 快乐的编码:)