uitextfield - IOS textField怎样设置只能输入英文字母或者数字,不能输入汉字
大家讲道理
大家讲道理 2017-04-17 14:31:10
0
3
711

RT,要弄个输入车牌后5位字符的输入框,车牌后5位只能有数字和字母,我在网上找了很多方法,都有些问题,要么就全都能输入,要么就只能输入数字,要么就到输入到5位后无法修改输入的东西,所以向大家求助,有没有什么方法可以限定输入框不能输入中文的
我现在用的这个方法
//设置键盘类型
self.textField.keyboardType = UIKeyboardTypeASCIICapable;

define kAlphaNum @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

//判断是否是数字,不是的话就输入失败
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs;

cs = [[NSCharacterSet characterSetWithCharactersInString:kAlphaNum] invertedSet];



NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; //按cs分离出数组,数组按@""分离出字符串



BOOL canChange = [string isEqualToString:filtered];



return self.textField.text.length>=5?NO: canChange;

}
这个方法输入满5位后就无法删除修改了求教

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(3)
左手右手慢动作

要判断存在的内容加上要输入的内容是否>=5才可以
加上后面的代码可以运行了
NSUInteger newLength = textField.text.length+string .length-range.length;
return newLength>=5?NO : canChange;

大家讲道理

可以用宏定义一个可输入的字符集串,比如:

#define kValidChar   @”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789″

然后,再相关委托中判断输入的字符是否能在这个串中找到。找不到,不接受。

迷茫

输入到5位后不能修改或者删除是你自己代码的问题。大于等于5就不让修改了,自然就不行了。你需要检查的是replacement是否符合规范,和修改后的结果是否符合规范。删除的时候,replacement字符是空。

objectivecreturn self.textField.text.length>=5?NO: canChange;
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!