ios - 将 maxlength 设置为特定的 UITextField
问题描述
我试图将 maxlength 设置为我的 UITextfield,但它也会影响我的其他 UITextfield。
我尝试使用:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Prevent crashing undo bug – see note below.
if(range.length + range.location > textField.text.length)
{
return NO;
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <= 25;
}
我只想将 maxlength 设置为特定的 uitextfield。
解决方案
首先,检查编辑文本字段。然后检查字符串的长度
- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
/// always allow other textfields
if (textField != specificTextfield) {
return YES;
}
/// check max length
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;
NSUInteger newLength = oldLength - rangeLength + replacementLength;
BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;
return newLength <= MAXLENGTH || returnKey;
}
推荐阅读
- c - 为什么函数式代码比 C 中的命令式代码快得多?
- sql - 即使在 SQL 中删除 Null 值(红移),它也会继续显示在 Excel 中
- qemu - libvirt 无法打开符号链接映像
- javascript - 为 contenteditable html 选项取消 btn
- extjs - 为我的视图实现路由系统(ExtJS)
- html - 导航栏菜单列表不会出现在响应式上
- matlab - MathNET.Numerics 中 Matlab sortrows() 的等效功能?
- python - 带有while循环和中断的Python函数以查找连续计数
- snowflake-cloud-data-platform - Snowflake 的 split_part 功能有限制吗?
- java - 由于开销,此并发代码是否较慢?还是有别的东西在起作用?