解雇键盘不能使用PickerView

时间:2016-12-09 21:47:31

标签: swift

(到目前为止)我有两个视图控制器,它们都至少有一个文本字段。

当用户点击文本字段时,键盘会弹出。

我已经准备好所有代码来移动内容,然后在发生这种情况时再次向下移动(所有内容都在滚动视图中,我认为这是最佳做法)

当用户点击文本字段之外时,我还有代码来解除键盘。

在第一个视图控制器上,它工作得很好,但在第二个我有一个UIPickerView,占用了文本字段下方的大量空间。那么当用户去拍摄最明显的空间时,他/她实际上是在点击滚动视图并且没有任何反应。但是,如果用户点击一个空的非常小的区域而不是滚动视图键盘解除。

如何解决使用UIPickerView的键盘问题? 这是我的情况看起来像的图像 screenshot

以下是一些代码

    func textFieldShouldClear(_ textField: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
}

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
}

  func dismissKeyboard() {
    view.endEditing(true)
}

2 个答案:

答案 0 :(得分:1)

你必须resignFirstResponder。

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    self.view.endEditing(true)
    textField.resignFirstResponder()
    return false

}

答案 1 :(得分:1)

当键盘显示(或userInteractionEnabled成为第一响应者)时,您可以在picker上停用textField,并在键盘解除时启用它(或textField辞职第一响应者)。