我需要为一个单独的文本字段设置最小和最大限制值,即数字应该从最小2位开始,最多5位数,这里我尝试了一些方法
-(BOOL)validatenumber:(NSString*)Number{
if ([Number length ]>=2) {
return NO;
}
return YES;
}
答案 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的编辑时运行验证。如果验证失败,则向用户显示弹出警报