0

For example: The user put 1234,56 into the TextField.

I set this NSNumberFormatter:

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

As you can see I only want to allow max. one fractional digit. How can I compare my string with my rules of my numberFormatter, so that I can open an alert, that the user's input was not correct?

Thanks Michael

Vladimir
  • 170,431
  • 36
  • 387
  • 313
Michael
  • 105
  • 1
  • 3
  • 9
  • 1
    you didn't say what kind of text field it is... NSTextField or UITextField. For the iOS case, [maybe this related question might help you out?](http://stackoverflow.com/questions/2412491/realtime-formatting-with-nsnumberformatter-in-a-uitextfield) – Michael Dautermann Oct 03 '12 at 11:01

1 Answers1

1

Check your entered number with numberFormatter like this:

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

You should use UITextField's delegate method for this:

- (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;
}
Paresh Navadiya
  • 38,095
  • 11
  • 81
  • 132