1

我是一个相当新的程序员,并且遇到了一些 UITextfields 的问题,基本上我有两个文本字段,我想将其中一个中的字符数量限制在一定数量,同时允许另一个字段有很多。

我找到了一个推荐这个的帖子:

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

   NSUInteger newLength = [[textField text] length] + [string length] - range.length;
   return (newLength > 2) ? NO : YES;

}

但是,这似乎会影响两个文本字段。我不确定如何定位一个领域。

任何人都可以提供帮助,还有一件事,我知道该代码中发生了什么,直到 - 范围。长度,范围是字符总数吗?

4

1 回答 1

1

好的,这里的问题是包含此代码的对象是两个文本字段的委托。两种方法来解决它。要么不添加您不关心长度的文本字段作为委托,要么更好的方法是在shouldChangeCharactersInRange方法期间区分字段。

对于您的问题范围的第二部分,是文本字段中正在更改的字符,包括:要更改的字符串的位置,正在更改的字符串的长度。

我个人的偏好是说如果文本长度大于最大长度并且您不删除然后拒绝更改。

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

    if(textField == self.textfieldYouWantToLimitTheLengthOf){

        if(textField.text.length > 2 && ![string isEqualToString:@""]){

            return NO;
        }
    }
    return YES;
}
于 2012-09-18T11:09:55.710 回答