我是一个相当新的程序员,我遇到一些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;
}
然而,这似乎会影响两个文本字段。我不确定如何定位一个领域。
任何人都可以提供帮助,也有一件事,我会在代码中继续进行直到 - 范围。长度,是字符总数的范围?
答案 0 :(得分: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;
}