2

在我的项目中,我必须将 a 的长度限制为UITextField6 个字符。这工作得很好。一旦我结束编辑并再次开始编辑并单击退格键,我的应用程序就会崩溃。

这是代码:

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

4 回答 4

5

试试这个。

- (BOOL)textField:(UITextField *)inputTextField shouldChangeCharactersInRange (NSRange)range replacementString:(NSString *)string
{
   return (textField.text.length >= 5 && range.length == 0) ? NO : YES;
}
于 2011-06-28T11:14:26.587 回答
2

实现您的委托方法如下 -</p>

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
    NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range
                                                                    withString:string];

    return ([toBeString length] > 6) ? NO : YES;
}

我们将得到结果字符串是什么并检查它的长度。这样退格就可以工作了。

于 2011-06-28T11:13:02.530 回答
1

如果您想在 UITextField 中实现最大长度验证,您可以使用我的一个工作项目中的以下工作代码。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
    if ([textField.text length] > 6) {
        textField.text = [textField.text substringToIndex:6];
        return NO;
    }
    return YES;
}
于 2011-06-28T11:13:23.697 回答
0

我不确定你想在这里实现什么,你可以试试这个:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
 if (string && [string length] && [textField.text length] <= 6) {
 return NO;
 }
 
 return YES;
}
于 2011-06-28T11:12:57.517 回答