Iphone 限制输入到UITextField的字符数
我有一个UITextField,其中我限制输入超过2位数字。现在,它工作正常,但当我点击文本字段并选择所有内容,然后键入时,它不允许我重写现有的2位数字 关于如何在此处使用“selectedTextRange”属性的任何线索Iphone 限制输入到UITextField的字符数,iphone,objective-c,ios,cocoa-touch,uitextfield,Iphone,Objective C,Ios,Cocoa Touch,Uitextfield,我有一个UITextField,其中我限制输入超过2位数字。现在,它工作正常,但当我点击文本字段并选择所有内容,然后键入时,它不允许我重写现有的2位数字 关于如何在此处使用“selectedTextRange”属性的任何线索 - (BOOL)cell:(RunnerTableViewCell *)iCell shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString { self.
- (BOOL)cell:(RunnerTableViewCell *)iCell shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString {
self.navigationItem.rightBarButtonItem.enabled = YES;
NSCharacterSet *anUnacceptedInput = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
int aCharacterUpperLimit = 2;
BOOL aReturnValue = YES;
NSInteger aTotalLength = iCell.inputField.text.length + [iString length];
NSLog(@"iString=%@ aTotalLength=%d",iString,aTotalLength);
if ([[iString componentsSeparatedByCharactersInSet:anUnacceptedInput] count] > 1 || (aTotalLength > aCharacterUpperLimit && ![iString isEqualToString:kRunnerEmptyString]) || [iString length] > aCharacterUpperLimit) {
aReturnValue = NO;
}
return aReturnValue;
}
试试这个:
NSInteger aTotalLength = iCell.inputField.text.length + [iString length] - iRange.length;