在UITextField中,我们只输入数字,并将其限制为最多3个数字,我使用了以下代码。
当我长按文本框(如下图所示),在两个数字之间输入字符串时,它允许所有特殊字符和字符。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS_ONLY] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
while (newLength < CHARACTER_LIMIT) {
return [string isEqualToString:filtered];
}
/* Limits the no of characters to be enter in text field */
return (newLength > CHARACTER_LIMIT ) ? NO : YES;
}
当我长按文本框(如下图所示),在两个数字之间输入字符串时,它允许所有特殊字符和字符。
![enter image description here](https://istack.dev59.com/u0YbY.webp)