接口构建器中的textfield输入范围

时间:2010-07-28 13:52:38

标签: iphone objective-c xcode

我的nib文件中有多个文本字段。 我想将我的一个文本字段中的输入范围决定为6-16位,我不想更改任何其他文本字段输入。为此,我创建了一个名为tflimit的方法,如下所示。

-(IBAction)tflimit:(id)sender
{      
    if([textfields1.text length]>=15 )
    {
         [textfields1 resignFirstResponder]; 
    }   
}

使用这种方法我只能输入16位输入。 如何在不更改其他代码的情况下确定文本字段中输入的范围(6-16)。

1 个答案:

答案 0 :(得分:2)

您可以在文本字段委托中的textField:shouldChangeCharactersInRange:replacementString:方法中过滤用户输入:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if (textField == textfields1){// Apply logic only to required field
        NSString* newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
        return [newString length] < 16 && [newString length] > 5;
    }
    return YES;
}

请注意,要正常使用此方法,需要在文本字段中预填充至少5个字符的文本。