我想创建一个自定义 UITextField :
1) 只允许一位小数。2)用户可以输入的最大小数位数(将是一个属性),比如说 2。
我最好的办法是什么?
我创建了一个继承自 UITextField 的新类。
对于我在 stackoverflow 上找到的第 1 点,我应该依赖以下方法:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Implementing it like this:
-(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;
}
第一个问题是这是 UITextField 委托的方法,不适用于我从 UITextField 继承的新对象。我希望我的自定义 UITextField 默认实现它,但没有这样的方法。
第二个问题是小数点分隔符可能是“。” 或者 ”,”。有没有办法找到填充的小数分隔符?
对于第 2 点,用户可以输入的最大小数位数,我想我会检查小数分隔符后是否已经有 2 位数字,如果是,我不会修改 UItextField.text。
谢谢
尼古拉