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 に答える