-2

プレースホルダー 00.00 のテキスト フィールドがあります。その形式で数値を入力したい。助けてください

4

2 に答える 2

0

キーボードのタイプを数値にします。そして、内部的に以下のコードを使用して double 値を取得します

      NSString *value =textfield_name.text;
      double doubleValue = [value doubleValue];
于 2013-02-25T09:48:56.057 に答える
0

この方法を試してください:

クラスを のデリゲートにして、ここyourTextFieldから使用するコードを追加します。

NSString *enteredValue=@"99.129";//get your value from textfield as yourField.text
double doubleValue=[enteredValue doubleValue];
NSString *formattedDoubleValue=[NSString stringWithFormat:@"%.2f",doubleValue];
NSLog(@"->%@",formattedDoubleValue);//now you can set back to the textfield as yourField.text=formattedDoubleValue

または、これに NSNumberFormatter を使用できます。

NSNumberFormatter *numFormatter=[NSNumberFormatter new];
[numFormatter setFormat:@"00.00"];
NSString *str=[numFormatter stringFromNumber:@99.129];
NSLog(@"->%@",str);

編集:あなたのコメントによると

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if (textField == self.yourTextField){
        NSLog(@"here");
        NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

        NSString *expression = @"^([0-9]{1,2})(\\.([0-9]{1,2})?)?$";

        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression
                                                                               options:NSRegularExpressionCaseInsensitive
                                                                                 error:nil];
        NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
                                                            options:0
                                                              range:NSMakeRange(0, [newString length])];
        if (numberOfMatches==0){
            return NO;
        }
    }

    return YES;
}
于 2013-02-25T09:59:42.727 に答える