我在我的应用程序中实现了一些TextField功能,所以我使用了TextField Delegates但它显示了一些错误,例如"类型字符串的值没有成员长度"我不知道如何解决这个问题,请帮我解决这个问题。
我在这里给出了我正在尝试的代码。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var oldLength: Int = textField.text!.characters.count
var replacementLength: Int = string.characters.count
var rangeLength: Int = range.length
var newLength: Int = oldLength - rangeLength + replacementLength
if textField.tag == 1 {
if string.length > 0 && !NSScanner.scannerWithString(string).scanInt(nil) { **------>//Error was showed in this line.**
return false
}
// This 'tabs' to next field when entering digits
if newLength == 5 {
if textField == txtOtp4 {
textField.resignFirstResponder()
}
}
else if oldLength > 0 && newLength == 0 {
}
return newLength <= 4
}
else {
if newLength == 11 {
if textField == txtPhoneNumber {
textField.resignFirstResponder()
}
return newLength <= 10
}
}
return true
// This allows numeric text only, but also backspace for deletes
}
答案 0 :(得分:18)
替换
if string.length > 0
通过
if string.characters.count > 0
编辑Swift 4:
String
现在符合Collection
协议,因此它具有count
属性。
答案 1 :(得分:8)
如果您使用的是Swift 2.0,则应使用
string.characters.count
获取字符串中的字符数。