Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 限制输入到UITextField的字符数_Iphone_Objective C_Ios_Cocoa Touch_Uitextfield - Fatal编程技术网

Iphone 限制输入到UITextField的字符数

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.

我有一个UITextField,其中我限制输入超过2位数字。现在,它工作正常,但当我点击文本字段并选择所有内容,然后键入时,它不允许我重写现有的2位数字

关于如何在此处使用“selectedTextRange”属性的任何线索

- (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;