如何设置Uitextfield的最小和最大限制?

时间:2014-10-27 06:58:32

标签: ios objective-c iphone swift uitextfield

我需要为一个单独的文本字段设置最小和最大限制值,即数字应该从最小2位开始,最多5位数,这里我尝试了一些方法

-(BOOL)validatenumber:(NSString*)Number{

if ([Number length ]>=2)  {
    return NO;
}

return YES;

}

4 个答案:

答案 0 :(得分:1)

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{

NSInteger inte = [textField.text intValue];
if (inte <5 && inte > 2)

    return NO;
else 
    return YES;
}

<强>夫特

override func textFieldShouldReturn(textField: UITextField) -> Bool {
var inte: Int = CInt(textField.text!)!
if inte < 5 && inte > 2 {
    return false
}
else {
    return true
}
}

答案 1 :(得分:1)

if ([amount.text length]>=2 && [amount.text length]<=5) {
    }else{
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"error" message:@"Plz enter the amout Min 10Rs" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
    return;
}

答案 2 :(得分:1)

根据您的需要进行一些修改,尝试一下。这还将处理文本字段中第一个元素的删除以设置最小值,并且不允许输入小于最小值或大于最大值。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if let manualInputText = textField.text, let range = Range(range, in: manualInputText) {

        let inputText = manualInputText.replacingCharacters(in: range, with: string)
        let minValue = 0 //your value
        let maxValue = 10 //your value

        if inputText.isEmpty {
            textField.text = "\(minValue)"
            return false
        } else if textField.text == "0" {
            textField.text = string
            return false
        }
        if let inputValue = Int64(inputText), (inputValue >= minValue), (inputValue <= maxValue) {
                return true
        }
    }
    return false
}

如果需要修改,请发表评论。

答案 3 :(得分:0)

我首先检查你是否可以解析字符串中的数字,然后检查数字的范围

-(BOOL)validatenumber:(NSString*)Number{

    NSCharacterSet *characterSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789,."] invertedSet];
    if ([Number rangeOfCharacterFromSet:characterSet].location != NSNotFound)
    {
        return NO;
    }

    return ([Number intValue] >= 100 && [Number intValue] <= 99999);
}

将委托设置为您的UITextField。当用户在函数func textFieldDidEndEditing(_ textField: UITextField)中完成UITextField的编辑时运行验证。如果验证失败,则向用户显示弹出警报