检查“文本”字段中的值

时间:2011-12-21 07:19:00

标签: objective-c xcode uitextfield

我有一个UITextfield,我需要检查输入的值是否在特定范围内(例如2到10之间)。任何人都可以帮助提供示例代码吗?

我正在使用此代码

if( [[textfieldobject.text stringByTrimmingCharactersInSet:
                         [NSCharacterSet whitespaceCharacterSet]] length] != 0 && 
                         [[textfieldobject.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] <= 2 &&
                         [[textfieldobject.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] > 10)

2 个答案:

答案 0 :(得分:1)

只需将字符串值转换为int,然后检查范围。 intValue将始终返回有效的int转换(如果有任何非数字,则为零)。请注意,如果有人输入“a10”,结果将为0,并且在下面的代码中,它将落在范围内。

int convertedValue = [textFieldObject.text intValue];
if (convertedValue >= 0 && convertedValue <= 10) {
    NSLog(@"In range");
} else {
    NSLog(@"Out of range");
}

您可以通过覆盖UITextFieldDelegate委托来阻止超出范围的字符:

shouldChangeCharactersInRange

或覆盖此委托并运行您的支票,然后弹出通知并让用户进行编辑。

textFieldDidEndEditing

答案 1 :(得分:0)

您可以使用长度属性。