0

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

我设置了这个 NSNumberFormatter:

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

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

谢谢迈克尔

4

1 回答 1

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;
}
于 2012-10-03T11:32:58.843 回答