因为项目需求是有个手机号输入框限制只能输入0-9+’+-#*‘14个字符,
所以我的方案是
1:将这14个字符弄成一个数组,如果当前输入的字符包括在里面就返回YES,否则为NO。
2:在textField- shouldChangeCharactersInRange 里面判断是否是允许的字符,如果是就return YES 否则为NO,为NO的时候点击的键就不会显示在输入框内,从而达到需要的效果
1:在NSString 类里面加了一下这个方法。
+ (BOOL)hasFeedbackNumberStr:(NSString*)string {
NSString *mainstring = @"-/+/#/*/0/1/2/3/4/5/6/7/8/9/#+=/";
NSArray*strarray = [mainstringcomponentsSeparatedByString:@"/"];
BOOLisMatch = [strarraycontainsObject:string];
returnisMatch;
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([NSString hasFeedbackNumberStr:string]){
if(range.length==1&& string.length==0) {return YES; }
if ([whole dataUsingEncoding:NSUTF8StringEncoding].length > 20) { [textFieldresignFirstResponder];
return NO;
}
returnYES;
}else{
returnNO;
}
网友评论