func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var result = true
let prospectiveText = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string)
if textField == textfield4 {
if count(string) > 0 {
let disallowedCharacterSet = NSCharacterSet(charactersInString: "0123456789.").invertedSet
let replacementStringIsLegal = string.rangeOfCharacterFromSet(disallowedCharacterSet) == nil
let resultingStringLengthIsLegal = count(prospectiveText) <= 9
let scanner = NSScanner(string: prospectiveText)
let resultingTextIsNumeric = scanner.scanDecimal(nil) && scanner.atEnd
result = replacementStringIsLegal &&
resultingStringLengthIsLegal &&
resultingTextIsNumeric
}
}
return result
}
Asked
Active
Viewed 82 times
0
1 Answers
1
Use
prospectiveText.characters.count
instead of
count(prospectiveText)

Code
- 6,041
- 4
- 35
- 75
-
prospectiveText in the sense – lee Jun 23 '16 at 09:17