因?yàn)轫?xiàng)目需求是有個(gè)手機(jī)號輸入框限制只能輸入0-9+’+-#*‘14個(gè)字符,
所以我的方案是
1:將這14個(gè)字符弄成一個(gè)數(shù)組,如果當(dāng)前輸入的字符包括在里面就返回YES,否則為NO晕拆。
2:在textField-?shouldChangeCharactersInRange 里面判斷是否是允許的字符,如果是就return YES 否則為NO,為NO的時(shí)候點(diǎn)擊的鍵就不會顯示在輸入框內(nèi)柬批,從而達(dá)到需要的效果
1:在NSString 類里面加了一下這個(gè)方法。
+ (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;
? ? ? ? ? ? }