如何覆盖 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
}
我有一个包含 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
}