如何让textField输入框 限制输入字数的同时,还只让输入数字和字母
1. 实现
UITextFieldDelegate 协议。
2. 在头文件中,定义如下变量:
- //最多的账户字符个数
- #define ACCOUNT_MAX_CHARS 16
复制代码
3. 在实现文件中:
将 textFiled对象的delegate设置为self:
- m_accountField = [[UITextField alloc] initWithFrame:CGRectMake(89,26, 243, 33)];
- m_accountField.borderStyle = UITextBorderStyleNone;
- m_accountField.font = fieldFont;
- m_accountField.delegate = self;
复制代码
- //UITextFieldDelegate
- - (BOOL)textFieldShouldReturn:(UITextField *)textField;
- {
- //用户结束输入
- [textField resignFirstResponder];
- return YES;
- }
- - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string // return NO to not change text
- {
- //判断是否超过 ACCOUNT_MAX_CHARS 个字符,注意要判断当string.leng>0
- //的情况才行,如果是删除的时候,string.length==0
- int length = textField.text.length;
- if (length >= ACCOUNT_MAX_CHARS && string.length >0)
- {
- return NO;
- }
- NSCharacterSet *cs;
- cs = [[NSCharacterSet characterSetWithCharactersInString:kAlphaNum] invertedSet];
- NSString *filtered =
- [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
- BOOL basic = [string isEqualToString:filtered];
- return basic;
- }
复制代码 原文链接:http://blog.csdn.net/tangaowen/article/details/8087798
|