1

我在另一个文件中有一个带有数据源/委托的表格视图。此外,表格视图上方还有一个搜索栏,属于第一个文件。在滚动时隐藏键盘,我需要调用:

[self.searchBar resignFirstResponder]

但是

(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

方法在委托中。那么在这种情况下滚动时如何隐藏键盘?

谢谢!

4

2 回答 2

1

您可以在 scrollviewwillbegindragging 中发送通知。表视图委托:

-(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];

}
于 2012-08-15T00:59:14.023 回答
0

有很多方法可以做,下面是其中的几个。

选项 1:在初始化表格对象后添加以下行

[yourTableView setKeyboardDismissMode:UIScrollViewKeyboardDismissModeOnDrag];

或者

选项 2:获取您的 tableview 的超级视图(我期望它作为 aViewcontrollerObj.view)并强制结束其编辑。

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    UIView *tableviewSuperView = yourTableView.superview;
    [tableviewSuperView endEditing:true];
}

希望对快乐编码有所帮助:)

于 2015-12-08T10:13:20.463 回答