【发布时间】:2011-02-08 15:05:00
【问题描述】:
我必须验证在. 之后只允许两位数字的文本字段
例如:12.34
如果用户输入的数字超过两位,则不允许输入文字。
让我知道这是否可以理解
我该怎么做,谁能帮帮我。
提前谢谢你。
【问题讨论】:
标签: iphone
我必须验证在. 之后只允许两位数字的文本字段
例如:12.34
如果用户输入的数字超过两位,则不允许输入文字。
让我知道这是否可以理解
我该怎么做,谁能帮帮我。
提前谢谢你。
【问题讨论】:
标签: iphone
你应该在下面的委托方法中编码,
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSArray *sep = [string componentsSeparatedByString:@"."];
if([sep count]==2)
{
NSString *sepStr=[NSString stringWithFormat:@"%@",[sep objectAtIndex:1]];
if([sepStr length] >2)
//do whatever you want
}
}
您还可以检查他们是否使用了多个小数点,
if([sep count]>2)
//use only one decimal point
【讨论】:
我使用此代码解决了我的问题。
- (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]>2);
}
return YES;
}
【讨论】:
检查文本字段委托中的文本有效性:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
【讨论】: