[英]How can I allow backspace in a UITextField?
在我的项目中,我必须将UITextField
的长度限制为 6 个字符。 这工作得很好。 一旦我结束编辑并再次开始编辑并单击退格键,我的应用程序就会崩溃。
这是代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSUInteger newLength = [txtLicense.text length] + [strNumber length] - range.length;
return (newLength > 6) ? NO : YES;
}
尝试这个。
- (BOOL)textField:(UITextField *)inputTextField shouldChangeCharactersInRange (NSRange)range replacementString:(NSString *)string
{
return (textField.text.length >= 5 && range.length == 0) ? NO : YES;
}
实现您的委托方法如下 -
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range
withString:string];
return ([toBeString length] > 6) ? NO : YES;
}
我们将得到结果字符串是什么并检查它的长度。 这样退格就可以工作了。
如果您想在 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;
}
我不确定你想在这里实现什么,你可以试试这个:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (string && [string length] && [textField.text length] <= 6) {
return NO;
}
return YES;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.