我有一个文本字段,必须只取一个特定范围的数值,例如m到n。我已经阅读了很多文章,但他们都只是说如何设置文本字段的最大长度。但我需要设置文本字段,使其仅取值范围,例如23到103.我设法确保文本字段仅通过将键盘类型设置为数字键盘来获取数值。有人请帮忙。
答案 0 :(得分:4)
您可以在用户完成编辑文本字段时检查该值。
将textField的委托设置为视图控制器,然后:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
NSString *stringValue = textField.text;
NSInteger integer = [stringValue intValue];
if (integer <23 || integer > 103)
// You can make the text red here for example
return NO;
else
return YES;
}
答案 1 :(得分:2)
您通常使用具有最小/最大可接受值的自定义数字格式化程序来实现此目的,如下所示:
NSNumberFormatter* formatter= [[NSNumberFormatter alloc]init];
formatter.numberStyle= NSNumberFormatterDecimalStyle;
formatter.allowsFloats= NO;
formatter.maximum= @103;
formatter.minimum= @23;
然后仅在格式化程序返回有效数字时允许用户返回:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
return [formatter numberFromString: textField.text]!= nil;
}
答案 2 :(得分:0)
试试这个。 如果要为特定文本字段设置范围。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField == self.txtMobileNumber )
{
if (textField.text.length >= 10 && range.length == 0)
return NO;
}
}