iOS 限制键盘输入字符

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

            }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容