ios - 当它已经可见时关闭键盘

标签 ios swift uitextfield uikeyboard uitextviewdelegate

当我有超过 1 个 UITextField 时,我无法关闭键盘。

我有 2 个 TextField:TextField1TextField2 并且我给它们每个标记 12

如果标签等于 2,我想隐藏键盘,如果我触摸标签等于 1 的文本字段,键盘再次可见,这适用于我的代码,但是当我把它转回去时,代码不像我做的那样想要,我先触摸 TextField1 然后触摸 TextField2 键盘仍然可见并且没有隐藏

我的代码是这样的

func textFieldDidBeginEditing(textField: UITextField) {
        if (textField.tag == 2) {
            self.view.endEditing(false)
            textField.resignFirstResponder()
        } else {
            self.view.endEditing(true)
        }
    }

我也尝试使用像 Editing Did BeginEditing Changed 这样的事件,但不能像我想要的那样

请帮助我如何在键盘已经可见时隐藏它

最佳答案

试试这个:

func textFieldDidBeginEditing(textField: UITextField) {
        if (textField.tag == 2) {
            self.view.endEditing(true)
        } else {
            textField.becomeFirstResponder()
        }
}

self.view.endEditing(true) 不会显示键盘,它实际上会尝试隐藏它,迫使第一响应者辞职。

关于ios - 当它已经可见时关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342147/

相关文章:

ios - 如何快速将 Any 转换为 Int?

ios - TPKeyboardAvoiding scrollview 在 iOS 中默认为错误的返回键类型 'Done' 而不是 UIReturnKeyNext

iphone - 为什么 Three20 会做一些奇怪的事情,导致 Xcode 4.2 出现问题?

ios - 如何通过自动布局以编程方式添加 InputAccessoryView?

swift - 如何在 swift 中将值添加到可选字典

ios - 获取最后十个 firebase 值并将它们分配给十个 UIButton 的标题

objective-c - 为什么每次按下按钮时 UITextField 不刷新?

TableCell 内的 iPhone UITextField 消隐

ios - viewForZoomingInScrollView 工作但有额外的空白空间

ios - 渐变动画——减速和加速