0

我有一个 UITextField ,您只能在其中输入数字和句点“,”这是它的制作方式:

#define NUMBERS @"0123456789"
#define NUMBERSPERIOD   @"0123456789,"

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

NSCharacterSet *cs;
NSString *filtered;

// Check for period
if ([textFieled.text rangeOfString:@","].location == NSNotFound) {

    cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERSPERIOD] invertedSet];
    filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
    return [string isEqualToString:filtered];
}

// Period is in use
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

return [string isEqualToString:filtered];

}

现在我想将“,”之后输入的数字限制为 2。我不知道该怎么做?

4

1 回答 1

0
int positionOfPeriod = [filtered rangeOfString:@","].location;
filtered = [filtered substringToIndex: MIN(positionOfPeriod+3, [filtered length])];
于 2012-06-28T13:42:54.887 回答