限制的UITextField大小(Restrict UITextField size)

2019-07-31 05:25发布

如何限制的字符在为UITextField多少?

也就是说,如果我把它限制在10个字符,用户将无法进入超过10个。此外,我想阻止他进入一些特殊的字符,如+,=,等等。

我会怎么做呢?

Answer 1:

下面是一个代码样品以限制的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; 
  }
}


Answer 2:

你可以让你的视图控制器符合UITextFieldDelegate protocol并实现textField:shouldChangeCharactersInRange:replacementString: -这被称为每当用户在文本字段中一个新的字符或删除现有字符。

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

有这样的一个这样的例子博客文章 。



Answer 3:

这对我的作品。

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{   

    if([textField.text length]<=8){
    [tf resignFirstResponder];       
        return YES;
    }
    else
        return NO;
}


Answer 4:

如果您想积极限制进入角色的用户,你接下来要做的事情想要做的是设置一个委托检测UITextField来处理事件,然后看看textDidChange通知。 然后,您可以在每次改变时间看看输入的文本,如果任何不想要的字符(或额外的,超出你期望的极限)输入后,你可以删除它们。

在这里看到更多的信息: http://discussions.apple.com/thread.jspa?messageID=6971952



Answer 5:

尝试使用UIKeyboardTypeNamePhonePad为您的UITextField。 它只有在它的字母和数字:

textField.keyboardType = UIKeyboardTypeNamePhonePad;


文章来源: Restrict UITextField size