Ios 在swift中验证文本输入
我的密码坏了,你能指出什么地方出了问题吗。我正在尝试验证SNameInput中的用户输入,当输入无效时,错误标签应更改其文本,当用户在SNameInput中键入且其有效时,STitle应更改其文本,谢谢Ios 在swift中验证文本输入,ios,swift,xcode,validation,Ios,Swift,Xcode,Validation,我的密码坏了,你能指出什么地方出了问题吗。我正在尝试验证SNameInput中的用户输入,当输入无效时,错误标签应更改其文本,当用户在SNameInput中键入且其有效时,STitle应更改其文本,谢谢 func textFieldDidChange(SNameInput: UITextField) { let d = "" if (SNameInput.isEqual(d)||(SNameInput.text?.characters.count)! >=
func textFieldDidChange(SNameInput: UITextField) {
let d = ""
if (SNameInput.isEqual(d)||(SNameInput.text?.characters.count)! >= 21) {
errorLabel.text = "Name has to be a t least 1 character and not longer than 20"}
else{ errorLabel.text = ""
Stitle.text = SNameInput.text}
}
可能性:您没有将
editingDidEnd
操作添加到SNameInput
文本字段中
editingDidEnd
:在UITextField
对象离开其边界
您是否将textfield delegate设置为
self
?您的委托方法是否被调用?您有一些奇怪的表达式,如(SNameInput:UITextField)SNameInput.isEqual(d)。另外,你的英语句子很难理解,因为你没有用句号结束每个句子。
override func viewDidLoad() {
super.viewDidLoad()
SNameInput.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingDidEnd)
}
@IBAction func textFieldDidChange(_ sender: UITextField) {
guard let string = sender.text else { return }
if (string.isEmpty || string.characters.count >= 21) {
errorLabel.text = "Name has to be a t least 1 character and not longer than 20"
}
else{
errorLabel.text = ""
Stitle.text = string
}
}