如何在文本字段和视图之间切换第一个响应者
我有一个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”之外的任何位置时退出第一响应者,请覆盖UIViewController
的touchesBegan
方法,您应该在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