ios - 如何覆盖 Swift 委托方法以获取更多参数?
问题描述
我有一个带有 3 个 UITextFields 的表单。当用户在该特定字段中输入文本后,我想验证每个字段的用户输入。现在,我有一个方法
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
}
推荐阅读
- scala - 计算按列分组的 TF-IDF
- ios - XCTestCase with Auth0:如何解除安全警报“XXXX”想要使用“auth0.com”登录
- c# - 无法加载 DLL 'mclmcrrt9_4.dll'
- c# - C# Windows Forms App - 如何检测非窗体窗口关闭
- python-3.x - 是否有用于变量名称的 Python (3) lint,例如“len”(内置函数/保留字等)
- java - sim.start() 中的 RinSim 不一致 NullpointerException GraphSpatialRegistry
- php - 用PHP将HTML标签中的字符串中的第一个单词包装起来?
- css - 显示:flex 不工作
- c++ - C++ 项目需要用证书签署文件 (RSA-SHA256)
- qt - 为什么我的 Enaml ImageView 不能按比例缩小?