我正在尝试制作实时电子邮件验证,但模拟器的行为很奇怪。当电子邮件无效时,它应该是红色的,当电子邮件有效时,文本的颜色应该是黑色的,但某些字符仍然是红色的。
struct EmailText: View {
@State var textFieldValue: String = ""
private func isValid(_ s: String) -> Bool {
// not real validation function, just for simplicity
return Int.random(in: 0 ... 1) == 1
}
var body: some View {
TextField("", text: $textFieldValue)
.foregroundColor(isValid(textFieldValue) ? .black : .red)
.padding()
}
}
编辑:我已将验证函数从正则表达式更改为简单条件,以排除正则表达式可能存在的问题。