objective c如何在UItextfield上设置最大限制值

时间:2014-09-30 08:54:48

标签: ios objective-c iphone uitextfield

NOTE: Not to set the Charecter limit, asking for Value of the field limit

在我的应用程序中,我有一个uitext字段来输入项目的费用。

我可以限制文本字段只输入数字值,也可以输入一些特定数量的字符,

但是我需要重新定义文本字段以仅允许某些范围的费用

需要限制成本仅限800 / - 仅限

如果用户尝试输入900或超过800的某些内容,则不再允许输入,

我们怎样才能实现任何帮助...谢谢

4 个答案:

答案 0 :(得分:2)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (textField == myTextField) {
        if (string.length == 0) {
            return YES;
        }
        NSString *editedString = [myTextField.text stringByReplacingCharactersInRange:range withString:string];
        NSInteger editedStringValue = editedString.integerValue;
        return editedStringValue <= 800;
    }

    return YES;
}

答案 1 :(得分:0)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    if([string isEqualToString:@""]) {
        return YES;
    }
     NSString *stringToValidate= [textField.text stringByReplacingCharactersInRange:range withString:string]];
        if([stringToValidate doubleValue]>800){
return NO;
}
return YES;
}

检查上面的代码,它可以帮助你

答案 2 :(得分:0)

首先设置文本域代理...

yourTextField.delegate=self

然后,

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
        NSString *str=[NSString stringWithFormat:@"%@%@",textField.text,string];
        if ([str integerValue]>800) {
            return NO;
        }
        else{
            return YES;
        }
    }

如果您有多个文本字段,则需要指定标记值并添加另一个条件来标识文本字段,如果只有一个文本字段,则使用相同的代码。

答案 3 :(得分:-1)

试试这个

处理&#34;编辑已更改&#34;事件

[textField addTarget:self 
               action:@selector(editingChanged:)
     forControlEvents:UIControlEventEditingChanged];

和选择器:

    -(void) editingChanged:(id)sender {
       // your code

}