如何检查小数的格式?

时间:2012-10-03 10:54:27

标签: objective-c xcode nsnumberformatter digits

例如: 用户将1234,56放入TextField。

我设置了这个NSNumberFormatter:

[numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
[numberFormatter setMaximumIntegerDigits:5];
[numberFormatter setMaximumFractionDigits:1];

正如你所看到的,我只想允许最大值。一个小数位。 如何将我的字符串与我的numberFormatter规则进行比较,以便我可以打开一个警告,用户的输入不正确?

谢谢迈克尔

1 个答案:

答案 0 :(得分:1)

使用numberFormatter检查您输入的号码:

 NSNumber * myNumber = [numberFormatter numberFromString:yourTextField.text];
 if(myNumber)
    //valid entered number
 else
    //invalid entered number

您应该使用UITextField的委托方法:

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range  replacementString:(NSString *)string
{
  NSNumberFormatter *numberFormatter = [NSNumberFormatter alloc]init]
  [numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
  [numberFormatter setMaximumIntegerDigits:5];
  [numberFormatter setMaximumFractionDigits:1];
  NSNumber * myNumber = [numberFormatter numberFromString:string];
  [numberFormatter release];
  if(myNumber)
    return YES;
  else
   return NO;
}
相关问题