Swift TextField应返回不切换textfields
在看了前面的问题和答案提供的示例之后,我认为应用该功能将是相对无缝的。但是,在应用下面的代码后,切换到新的第一响应者不起作用。我设置了代理、标记、功能,但仍然没有进展。我显然在这个逻辑中遗漏了一些东西,但似乎没有意识到它是什么Swift TextField应返回不切换textfields,swift,uitextfield,first-responder,Swift,Uitextfield,First Responder,在看了前面的问题和答案提供的示例之后,我认为应用该功能将是相对无缝的。但是,在应用下面的代码后,切换到新的第一响应者不起作用。我设置了代理、标记、功能,但仍然没有进展。我显然在这个逻辑中遗漏了一些东西,但似乎没有意识到它是什么 override func viewDidLoad() { super.viewDidLoad() self.Class1TF.delegate = self as? UITextFieldDelegate self.Credits1TF
override func viewDidLoad() {
super.viewDidLoad()
self.Class1TF.delegate = self as? UITextFieldDelegate
self.Credits1TF.delegate = self as? UITextFieldDelegate
self.Grade1TF.delegate = self as? UITextFieldDelegate
self.CumCredits.delegate = self as? UITextFieldDelegate
self.CumGPA.delegate = self as? UITextFieldDelegate
Class1TF.tag = 0
Credits1TF.tag = 1
Grade1TF.tag = 2
CumCredits.tag = 3
CumGPA.tag = 4
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(Classes2Controller.dismissKeyboard))
view.addGestureRecognizer(tap)
func textFieldShouldReturn(_ textField: UITextField) -> Bool
{
// Try to find next responder
if let nextField = textField.superview?.viewWithTag(textField.tag + 1) as? UITextField {
nextField.becomeFirstResponder()
} else {
// Not found, so remove keyboard.
Class1TF.resignFirstResponder()
return true
}
// Do not add a line break
return false
}
只需将UITextFieldDelegate添加到您的ViewController声明中,无需强制转换
self.classatf.delegate=self
,不幸的是,该开关仍然没有出现。您还需要将textFieldShouldReturn方法移出viewDidLoad方法我添加了textfield委托,并将函数移到viewDidLoad括号下方。非常感谢你,利奥!