我有一个文本字段,它必须只取特定范围的数值,比如 m 到 n。我浏览了很多文章,但它们都只是说如何设置文本字段的最大长度。但我需要设置文本字段,使其仅采用范围内的值,例如 23 到 103。我设法通过将键盘类型设置为数字键盘来确保文本字段仅采用数值。有人请帮忙。
问问题
5711 次
3 回答
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;
}
于 2013-07-18T09:34:58.210 回答
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;
}
于 2013-07-18T09:55:38.767 回答
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;
}
}
于 2013-10-07T11:44:59.187 回答