【发布时间】:2016-06-08 16:06:21
【问题描述】:
我正在处理一个iOS Xcode 7.3 Swift2 项目。它有不同的UITextFields,仅限于3 位数字,特别是数字。他们被分配到UITextFieldDelegate 并且运行良好。
这是我限制它们的地方:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
let limitLength = 3
if newLength > limitLength {
return false
}
let numberOnly = NSCharacterSet.init(charactersInString: "0123456789")
let stringFromTextField = NSCharacterSet.init(charactersInString: string)
let strValid = numberOnly.isSupersetOfSet(stringFromTextField)
return strValid
}
但是,一些UITextFields 仍然需要限制为数字并且也限制为单个 数字,我该如何在上面的部分中设置这个,仅适用于那些特定的UITextFields ?
UITextFields的名称需要是个位数:
widthInches
lengthInches
我尝试将它放在第一个后卫部分之后,但没有运气:
guard let text2 = widthInches.text else { return true }
let newLength2 = text2.characters.count + string.characters.count - range.length
let limitLength2 = 3
if newLength2 > limitLength2 {
return false
}
【问题讨论】:
-
这里的所有答案都非常过时,请这样做stackoverflow.com/a/43099816/294884
标签: ios swift2 uitextfield limit uitextfielddelegate