2012-01-05 103 views
2

我想检查一个UITextfield,以确保它不包含第二个小数。如何检查NSString的第二个小数?检查NSString相同的字符两次

真的,我想要做的是提供一个uitextfield,只有数字键盘,并使其如果用户按下1 2 3 4 5 6 7 8 9它显示为“$ 1,234,567.89”,但我遇到将字符串转换为浮点值并将结果四舍五入......但如果我可以确保用户不输入2小数点,我也会很好。

+0

请检查此问题,http://stackoverflow.com/questions/276382/what-is-the-best-way-to-enter-numeric-values-with-decimal-points – AAV 2012-01-05 19:13:32

回答

3

这样做的最好方法是防止用户输入第二个小数点。如下

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"."]; 

    if ([string rangeOfCharacterFromSet:set].location != NSNotFound && [textField.text rangeOfCharacterFromSet:set].location != NSNotFound) { 
     return NO; 
    } 

    return YES; 
} 

现在,如果用户再次按下小数点,它不会被添加到现有的UITextField:shouldChangeCharactersInRange:replacementString文本字段 - 使用UITextFieldDelegate方法。

相关问题