objective-c – 将文本字段条目限制为仅一个小数点

我创建了一个文本字段来输入金额.我希望用户只能输入一个小数点.我实现了 – (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string方法.

在一般情况下它工作正常,但如果按下退格键并删除单个小数点,之后它仍然假定已输入小数点,因此不再接受小数点.

每当通过按退格键删除小数点时,我需要重置decimalPointEntered标志.怎么做 ?

最佳答案
这对我来说很好.试试这段代码:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

    NSArray *sep = [newString componentsSeparatedByString:@"."];
    if([sep count] >= 2)
    { 
        NSString *sepStr=[NSString stringWithFormat:@"%@",[sep objectAtIndex:1]];
        return !([sepStr length]>1);
    }
    return YES;
}

转载注明原文:objective-c – 将文本字段条目限制为仅一个小数点 - 代码日志