【发布时间】:2017-05-06 10:53:34
【问题描述】:
我有一个 UITextField 用于输入密码。
我的要求是当 textField 字符范围达到第 6 个字符时,我必须进行服务器验证,并且必须将数据放入标签中。如果字符范围小于 5,那么我将传递 nil 值。
下面是我的代码:-
//TextField character range
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == pinCode
{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
if(5 >= newLength)
{
print(newLength)
}
else
{
if newLength == 6
{
serverValidation()
print(textField.text!)
setFields(city: "Ajmer", state: "Rajasthan", country: "India")
return newLength <= 6
}
else
{
return newLength <= 6
}
}
}
return true
}
我的问题是当 (newLength == 6) 时,我得到的 textField 文本只有 5 个字符。我的意思是,如果假设邮政编码是 560068,那么我只会收到 56006 的文本。 (但我必须在这种情况下对 6 个字符的邮政编码进行服务器验证)
所以如果 (newLength == 6) 那么我怎样才能在文本字段中获得 6 个字符,然后我只能在这里进行服务器验证。
我是 Swift 的新手。
谢谢
【问题讨论】:
-
这是在将新字符添加到文本字段的字符串之前,如果我没记错的话,您的全文应该是
textField.text+string -
好的,让我检查一下。我会让你知道。谢谢
标签: ios swift uitextfield character string-length