在UIView上调用endEditing

时间:2016-05-01 18:20:30

标签: ios swift uitableview uitextview

我有一个带有两个UITextViews的tableView。用户可以通过点击“+”按钮添加任意数量的单元格。 tableView以一行(单元格)开始。让我们说用户将一些信息添加到两个textViews然后点击加号按钮并滚动到达它。当用户滚动时我调用此函数来关闭键盘,因此它不会妨碍:

override func scrollViewDidScroll(scrollView: UIScrollView) {

    self.view.endEditing(true)

}

现在,键盘消失,用户点击第二行的文本字段。 tableView跳起来(我认为是为了容纳键盘),但是textField无法编辑(没有光标和键盘没有出现)。如果我回到第一行(第0行),键盘会出现,我可以编辑textView。 为什么会这样?

2 个答案:

答案 0 :(得分:1)

scrollView子类上有一个属性(例如TableViews)

tableView.keyboardDismissMode = .OnDrag

一旦用户开始下降拖动,它就会解除键盘

答案 1 :(得分:0)

每次tableview移动时都会调用scrollViewDidScroll,所以当" tableView跳起来(我认为是为了容纳键盘)"它还可以调用并关闭键盘。你应该添加一些限制或将endEditing代码放在另一个地方。