iOS 限制键盘输入字符

2023-01-31  本文已影响0人  Cathy范

因为项目需求是有个手机号输入框限制只能输入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;

            }

上一篇 下一篇

猜你喜欢

热点阅读