1.首先要遵循UITextFieldDelegate代理,将相应的输入框设置代理,如:
_mobileText.delegate = self; //文本编辑代理
直接上代码吧:
//提交按钮
- (IBAction)submitNewPwdClick {
if (_mobileText.text.length == 0) {
[self.HUD showToastWithText:@"手机号不能为空" FromView:self.view];
}
else if (![self checkPhoneNumInput:_mobileText.text]){
[self.HUD showToastWithText:@"请输入合法手机号" FromView:self.view];
}
else if (_SMSCodeText.text.length == 0){
[self.HUD showToastWithText:@"验证码不能为空" FromView:self.view];
}
else if (_pwdText.text.length > 32 || _pwdText.text.length < 6)
{
[self.HUD showToastWithText:@"请输入6-32位新密码" FromView:self.view];
}
else
{
[self.HUD showToastWithText:@"正在提交···" FromView:self.view];
//修改密码成功
// [TLDUserManager saveUserMobile:_mobileText.text];
// [TLDUserManager saveUserPassword:_pwdText.text];
[self dismissViewControllerAnimated:YES completion:nil];
}
}
#pragma mark UITextFieldDelegate
//只允许输入数字,且只有11位数
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField.text.length == 11) {
if ([string isEqualToString:@""]) {
return YES;
}
else {
return NO;
}
}
return [self validateNumber:string];
}
//只允许输入数字
- (BOOL)validateNumber:(NSString*)number{
BOOL res = YES;
NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
int i = 0;
while (i < number.length) {
NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
NSRange range = [string rangeOfCharacterFromSet:tmpSet];
if (range.length == 0) {
res = NO;
break;
}
i++;
}
return res;
}
//检查是否为手机号的方法
-(BOOL)checkPhoneNumInput:(NSString *)phoneStr
{
NSString *photoRange = @"^1(3[0-9]|4[0-9]|5[0-9]|7[0-9]|8[0-9])\\d{8}$";//正则表达式
NSPredicate *regexMobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",photoRange];
BOOL result = [regexMobile evaluateWithObject:phoneStr];
if (result) {
return YES;
} else {
return NO;
}
}
2.上面用到了一个对MBProgressHUD封装的简便类,详情请参考博文:
http://blog.youkuaiyun.com/iot_li/article/details/50215715