UIScrollViewKeyboardDismissModeOnDrag 当没有滚动不起作用时

UIScrollViewKeyboardDismissModeOnDrag when nothing to scroll doesn't work

我试图用滑动手势隐藏键盘,在 iOS 7 我知道有 UIScrollViewKeyboardDismissModeOnDrag 但这似乎只有在有东西要滚动时才有效,而不是当行搜索结果在 UIKeyboard 下,但没有足够的行来滚动视图此 UIScrollViewKeyboardDismissModeOnDrag 不起作用,因为没有可滚动的内容,我如何在没有任何内容时也可以通过滑动手势关闭键盘滚动?

希望能有所帮助(至少对我有用)。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
  [myTextField resignFirstResponder];
}

这对我有用:

UISwipeGestureRecognizer * tapGesture = [[UISwipeGestureRecognizer alloc]
                                       initWithTarget:self
                                       action:@selector(hideKeyBoard)];

[self.view addGestureRecognizer:tapGesture];

以及方法:

-(void)hideKeyBoard {

[textViewOrTextField resignFirstResponder];

}

最简单、最优雅的代码,也是最好的使用感觉,就是始终设置

 self.tableView.alwaysBounceVertical = YES;

使用 UIScrollViewKeyboardDismissModeOnDrag 时。

这样你就可以随时垂直拖动弹跳,所以这个问题就不存在了。