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括号下方。非常感谢你,利奥!