iOS控制UITextField的输入内容
在实践中我们都知道控制UITextField输入法使用键盘模式就能控制,但这只是做到了第一步。如果你想实现下面的效果呢?
实现效果图
宝宝没看懂了吗?就是有时你想要在输入的时候只想记录正确的格式法,不正确根本不记录。看代码:
-
在UITextField协议方法中实现
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
BOOL basic;
if([textField.placeholder isEqualToString:@"请输入车牌号"])
{
//只能输入纯大写字母和数字
NSCharacterSet *cs;
cs = [[NSCharacterSet characterSetWithCharactersInString:kAlphaNumPhone] invertedSet];
NSArray *array=[string componentsSeparatedByCharactersInSet:cs];
NSString *filtered = [array componentsJoinedByString:@""];
basic= [string isEqualToString:filtered];
if (textField.text.length >= 6) {
[LeafNotification showInController:self withText:@"车牌号码不能超过6个字符哦"];
return NO;
}
return basic;
}
return YES;
}
-
记得给对应的控件实现协议
self.phoneTxt.delegate = self;
-
kAlphaNumPhone是宏定义
可以根据自己的需求来进行宏定义,因为很多地方都用到,我只是为了方便。eg:
示意图.png我就列举一个,一次类推即可。
我刚开始做时,有点没明白过来。现在明白过来了,推荐给大家。不过我要谢谢提醒我的好友,么么哒!