如何在文本字段和视图之间切换第一个响应者

我有一个UITextView和UITextField的UIViewController。

UITextField成为视图加载的第一个响应者:

override func viewDidAppear(_ animated: Bool) {
  super.viewDidAppear(animated)
  textField.becomeFirstResponder()
}

问题是我不能简单地点击UITextView并开始编辑。 我的猜测是我需要首先从UITextField中退出第一个响应者。

我尝试了用于结束编辑并添加textField.resignFirstResponder()方法的UITextFieldDelegate方法,但该方法根本没有被触发(基于未显示的打印语句)。

以下是这种方法的一个例子:

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}

我希望最终在这两个文本视图之间切换,而不会忽略键盘。 所以,第一个响应者的状态只是来回传递。 但是,我似乎无法找到任何方法,基本上可以让我的攻击点击一个方法。

有谁知道什么方法会允许这个功能?


textFieldShouldEndEditing调用resignFirstResponder没有效果,因为该函数仅在textField即将辞职时才被调用。 如果您希望在返回键的敲击下编辑结束,或者如果您想在用户触摸“textField”之外的任何位置时退出第一响应者,请覆盖UIViewControllertouchesBegan方法,您应该在textFieldShouldReturn使用resignFirstResponder

退出第一响应者按下返回键的方法:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true    
}

如果您在模拟器上使用iOS系统键盘有时不会出现...当您切换文本字段或视图键盘不会消失在真实的设备上..如果您想尝试在模拟器上取消选中连接硬件键盘从模拟器硬件选项... 模拟器设置屏幕截图

链接地址: http://www.djcxy.com/p/44313.html

上一篇: How to Toggle First Responders Between Text Fields and Views

下一篇: iOS: Text disappearing from subclassed UITextfield when responder resigns