Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 设置文本字段的数值范围_Ios_Objective C_Uitextfield - Fatal编程技术网

Ios 设置文本字段的数值范围

Ios 设置文本字段的数值范围,ios,objective-c,uitextfield,Ios,Objective C,Uitextfield,我有一个文本字段,它必须只取特定范围的数值,比如m到n。我看过很多文章,但它们都只是说如何设置文本字段的最大长度。但是我需要设置文本字段,这样它只接受范围内的值,比如23到103。通过将键盘类型设置为数字键盘,我设法确保文本字段只接受数字值。有人请帮忙 用户编辑完文本字段后,可以检查该值 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString

我有一个文本字段,它必须只取特定范围的数值,比如m到n。我看过很多文章,但它们都只是说如何设置文本字段的最大长度。但是我需要设置文本字段,这样它只接受范围内的值,比如23到103。通过将键盘类型设置为数字键盘,我设法确保文本字段只接受数字值。有人请帮忙

用户编辑完文本字段后,可以检查该值

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
将文本字段的委托设置为视图控制器,然后:

- (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;
}

通常通过使用具有最小/最大可接受值的自定义数字格式化程序来实现这一点,如下所示:

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;
}
试试这个。 如果要设置特定文本字段的范围

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{


我正在尝试开发一个iOS应用程序。如果你想将最小值设置为23,那么当textfield上的类型2表示你期望的值时会发生什么?好的。你说得对。但我急需设置一个更高的限制。保留下限。你可以在textfield:ShouldChangeCharactersRange:replacementString:中这样做。只需将输入限制为t他将数字从0到9,并为最多103个东西添加额外的逻辑。使用数字键盘也不会限制任何输入。您仍然可以复制和粘贴或使用外部键盘。@Amar否。这不是关于界面生成器或Xcode的问题。谢谢,但我需要的是,如果上限为103,则用户必须无法键入104.这就是为什么我在textfield shouldendediting中返回NO。在输入有效值之前,他不能停止编辑textfield。我认为逻辑应该在textfield:shouldChangeCharactersRange:replacementString:method中。