如何将文本字段中允许的最大输入值限制为 10? [复制]
Posted
技术标签:
【中文标题】如何将文本字段中允许的最大输入值限制为 10? [复制]【英文标题】:How to restrict the maximum allowed input value in a text field to be 10? [duplicate] 【发布时间】:2015-08-14 09:36:23 【问题描述】:我有一个 UITextField。我想将字段中允许的最大输入值限制为 10。
即当用户在里面输入数字时,一旦输入值大于10,输入字段中的值将不再更新,除非用户输入小于或等于10的值。
【问题讨论】:
【参考方案1】:所有其他答案都在限制输入的 length,而 OP 显然要求限制输入的 value。首先,你也可以使用UIStepper
(来源:apple.com)
或 UISlider
用于此目的(与标签一起显示当前值)。这对用户来说也可能更清楚。
如果你坚持基于 UITextField 的方法,你需要实现 textField:shouldChangeCharactersInRange:replacementString:
方法如下:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
NSString *text = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSNumberFormatter *numberFormatter = [NSNumberFormatter new];
NSNumber *number = [numberFormatter numberFromString:text];
if (number == nil || [number doubleValue] > 10)
return NO;
return YES;
如果您不允许负数,您可能需要添加一些额外的检查。
【讨论】:
【参考方案2】:试试这个:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
if(textField == mytextField)
if (textField.text.length == 10)
if (range.length == 0)
return NO;
return YES;
--> 绝对会帮到你
祝你好运
【讨论】:
它可以限制输入长度,但它不能满足 OP 的要求。以上是关于如何将文本字段中允许的最大输入值限制为 10? [复制]的主要内容,如果未能解决你的问题,请参考以下文章