2011-08-15 12 views
0

可能性の重複:
Iphone UITextField only integerテキストフィールドにテキスト値の制限を適用するにはどうすればよいですか?

私はiPhoneのプラットフォームで新しいプログラマです。テキストフィールドに適用制限を適用したい場合は、ユーザーが文字ではなく数値のみを入力するようにします。だから私はこれらの制限を適用し、キーボード上のボタンを追加する方法を教えてください?だから私は数字キーパッドだけを使用することができます。私は数字パッドだけを使用すると、ユーザーは数値だけを入力するので、キーパッドのボタンをどのように追加しますか?要するに、私はキーボード上の終了ボタンを追加し、文字値の制限を適用する方法は?

答えて

0

あなたがキーパッドとUITextFieldDelegateを実装し、テキストフィールドからNOを返すためにテキストフィールドの入力タイプを設定する必要があります。shouldChangeCharactersInRange:replacementString:キャラクターがあなたの受け入れサブセットではありません(0-9とどんな句読点は許可したいマーク)いつでも。これにより、ユーザーが貼り付けたテキストフィールドは他の入力を無視します。

完了ボタンについては、キーボードを外す外部ボタンを追加するか、キーパッドと終了ボタンを持つ独自の入力ビューを作成することができます。ユーザーを確保するために、以下の方法が唯一の桁にコースの

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
    [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 

    NSNumber* myNumber; 
    NSString* myString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
    range = NSMakeRange(0, [myString length]); 
    [numberFormatter getObjectValue:&myNumber forString:myString range:&range error:nil]; 

    if (([myString length] > 0) && (myNumber== nil || range.length < [myString length])) { 

     return NO; 
    }else { 
     return YES; 
    } 
} 

を入力することができます

+0

を設定することができますか? – iRam11

2

、あなたはuはtexfieldに私の制限の例を与えることができ

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
関連する問題