我正在为我的应用程序构建入职培训。我想在textFieldDidEndEditing()中验证用户输入,以便在出现问题时向用户提供即时反馈。每个textField需要不同的验证,例如,一个将确认输入是有效的电子邮件,另一个将确认有效的出生日期。
我已经尝试了很多设计模式,以使其明确灵活,但在swift中似乎没有任何一种。我想知道是否有人有一个很好的解决方案吗?
我想避免像这样的坏事:
func textFieldDidEndEditing(textfield: UItextField) {
if textfield = emailTextBox {
if validEmail(textfield.text) {
textfield.shadowColor = blue
} else {
textfield.shadowColor = red
}
}
if textfield = dateofBirthTextBox {
if validDOB(textfield.text) {
textfield.shadowColor = blue
} else {
textfield.shadowColor = red
}
}
}
我想尽可能接近这个:
func textFieldDidEndEditing(textfield: UItextField) {
if textfield.isValid {
textfield.shadowColor = blue
} else {
textfield.shadowColor = red
}
}
我想过/尝试过:
由于Swift中的限制,我无法很好地实现这些功能,并希望得到任何帮助。
非常感谢
答案 0 :(得分:0)
一个好方法是尝试使用RxSwift来解决这个问题,它提供了一种处理此类情况的反应式解决方案技术并避免旧的错误,请参阅此处的演示版本RXSwiftDeno
在该教程中,这是textfeild验证部分的标题 RxSwift和直接文本输入