我有一个 textField
,用户可以在其中输入电子邮件地址。我想在输入文本成为有效电子邮件地址的那一刻激活提交按钮。
验证有效,但 shouldChangeCharactersInRange
中的代码似乎在用户输入后执行一步。因此,当电子邮件有效时,用户仍然需要在按钮更改之前再点击一个键。同样,如果电子邮件地址变为无效,则按钮不会更改,直到再点击一个键。
请注意,这也发生在设备上,而不仅仅是模拟器。
代码如下:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) {
if emailIsValidFormat(textField.text) {
emailSubmitButton.alpha = 1
} else {
emailSubmitButton.alpha = 0.4
}
}
最佳答案
调用此方法时文本尚未更改。您必须使用range
和replacementString
来构建电子邮件地址,然后进行验证。
关于ios - textField shouldChangeCharactersInRange 正在执行用户操作后一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28649711/