限制UITextField大小

4 cocoa-touch objective-c uitextfield

如何限制UITextField中的字符数?

即如果我将其限制为10个字符,则用户将无法输入超过10个.此外,我想阻止他输入一些特殊字符,如+,=等.

我该怎么做?

jj0*_*j0b 10

这是一个限制UITextField大小的代码示例:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  if ([[textField text] length] + [string length] - range.length > MAX_LENGTH) {
    return NO;
  } else {
    return YES; 
  }
}
Run Code Online (Sandbox Code Playgroud)


Chu*_*eow 7

您可以使视图控制器符合UITextFieldDelegate protocol并实现textField:shouldChangeCharactersInRange:replacementString:- 只要用户在文本字段中键入新字符或删除现有字符,就会调用此方法.

然后,您可以检查用户刚输入的字符的有效性,返回NO任何无效字符(如问题中的+,=).

这篇博文中有一个例子.