我有一个带有UITextView和UITextField的UIViewController。
UITextField成为视图加载时的第一个响应者:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
textField.becomeFirstResponder()
}
问题是我不能简单地点击UITextView并开始编辑。我的猜测是我需要先从UITextField辞退第一个响应者。
我尝试使用UITextFieldDelegate方法来结束编辑并添加textField.resignFirstResponder()
方法,但该方法根本没有被触发(基于未显示的print语句)。
以下是该方法的一个示例:
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
我想最终在这两个文本视图之间切换,而不是解雇键盘。因此,第一响应者状态将简单地来回传递。但是,我似乎无法找到任何方法,基本上让我的火在点击时调用方法。
有谁知道哪种方法可以使用此功能?
答案 0 :(得分:1)
答案 1 :(得分:0)
在resignFirstResponder
内调用textFieldShouldEndEditing
无效,因为仅在textField
即将辞职的第一响应者时调用该函数。
您应该在resignFirstResponder
内使用textFieldShouldReturn
,如果您想在点击返回键时结束编辑,或者如果您想首先辞职,则应覆盖UIViewController
s touchesBegan
方法当用户触摸`textField。
在按回车键方法时辞职第一响应者:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}