如何覆盖 Swift 委托方法以获取更多参数?

How can I override a Swift delegate method to take more parameters?

我有一个包含 3 个 UITextField 的表单。当用户在该特定字段中输入完文本后,我想验证每个字段的用户输入。现在,我有一个方法

validateAllFields()

我打电话给:

func textFieldDidEndEditing(_ textField: UITextField) {
    self.validateAllFields()
}

我宁愿在修改文本后验证单个字段,而不是在修改每个字段后验证所有字段。

有没有办法覆盖委托方法或扩展 UITextField 以获取更多参数?类似于:

override func textFieldDidEndEditing(_ textField: UITextField,
                       textFieldIdentifier: TextFieldIdentifierEnum) {
    self.validate(textField: textField, basedOn: textFieldIdentifier)
}

我怀疑可以通过扩展来完成,但我不清楚如何进行。

感谢您的帮助!

您不必这样做,因为参数 (_ textField: UITextField) 会为您提供用户更改的当前文本字段

假设你有

@IBOutlet weak var emailTexf:UITextField!
@IBOutlet weak var passTexf:UITextField!

func textFieldDidEndEditing(_ textField: UITextField) {
  self.validateAllFields(textField)
}
fun validateAllFields(_ current:UITextField) {

   if  emailTexf == current {

   }
   else if passTexf == current {

   } 
   else {  }  // etc
}