如何在文本字段中设置限制?

时间:2011-07-27 16:32:20

标签: iphone objective-c uitextfield

任何人都可以告诉我如何设置在objective-c的文本字段中输入的单词的限制吗? 在我的情况下,我有一个注册表格,在注册表格中,每个用户都必须输入usernamepasswordemailphone no.,现在我必须限制用户输入最多15个字符的名称。

任何人都能告诉我我该怎么做吗?

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式限制UITextField中的输入数量。

首先,将相关UIViewController设置为UITextField

的委托对象
yourTextField.delegate = self;

然后将以下代码段添加到UIViewController

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([textField.text length]<15) {
           return YES;
    }

    return NO;
}

或者您可以在UITextFieldDelegate界面中定义UIViewController协议

@interface YourViewController()<UITextFieldDelegate>
  // YourViewController.m
@end

然后在您的课程中实施以下shouldChangeCharactersInRange任务。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
   NSUInteger newLength = [textField.text length] + [string length] - range.length;
   return (newLength > 15) ? NO : YES;
}

答案 1 :(得分:2)

试试这个:

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

NSString *textFieldText = [textField.text stringByReplacingCharactersInRange:range withString:string];

        if ([textFieldText length] > 15) 
        {
            return NO;
        }

 return YES;
}