我想检查UITextfield以确保它不包含第二个小数。如何检查NSString的第二个小数?
我真正想要做的是提供一个uitextfield并且只有数字键盘,如果用户按下1 2 3 4 5 6 7 8 9它就会显示为“$ 1,234,567.89”然而我遇到了问题将字符串转换为浮点值并将结果舍入...但如果我可以确保用户不输入2位小数,我也会很好。
答案 0 :(得分:3)
执行此操作的最佳方法是阻止用户输入第二个小数点。使用UITextFieldDelegate方法 - textField:shouldChangeCharactersInRange:replacementString:如下所示
- (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。