2

UITextFieldフィールドに入力できる最大値を 1000 に制限したいのですが、ユーザーが内部に数値を入力しているときに、入力値が 999 を超えると、入力フィールドの値は更新されなくなります。ユーザーが 1000 未満の値を入力しない限り。

UITextField入力を制限するには、デリゲートを使用する必要があると思います。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
  //How to do
}

しかし、それを実装する方法がわかりません。助言がありますか?

==========更新=============

私の入力フィールドでは、ユーザーが整数を入力できるだけでなく、999,03 のような浮動小数点値も入力できます

4

5 に答える 5

2
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if(textField.tag == 3)
    {
        if(textField.text.length >3 && range.length == 0)
        {
            return NO;
        }
        else
        {
            return YES;
        }
    }
}
于 2013-04-29T08:39:04.383 に答える
0

最も基本的な形式では、これを行うことができます:

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

    newText = [textField.text stringByReplacingCharactersInRange:range withString:string];

    return [newText intValue] < 1000;
}

ただし、テキストが他の文字で始まる場合は 0 を返すnewTextため、 が整数かどうかも確認する必要があります。intValue

于 2013-04-29T08:41:24.360 に答える