4.须要全选制手机联系人(iOS11有坑)bash
self.middleTextField.keyboardType = UIKeyboardTypeNumberPad;复制代码
- (BOOL)checkTelNumber:(NSString *)num {
if (num.length <= 0) {
return NO;
}
NSString *regexStr = @"^((1[0-9]))\\d{9}$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexStr];
BOOL isMatch = [pred evaluateWithObject:num];
return isMatch;
}复制代码
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
UIToolbar * toobar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 38.0f)];
toobar.translucent = YES; toobar.barStyle = UIBarStyleDefault;
UIBarButtonItem * spaceBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem * doneBarButtonItem = [[UIBarButtonItem alloc] init];
UIButton * saveBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 60, 38)];;
[saveBtn setTitle:@"完成" forState:UIControlStateNormal];
[saveBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[saveBtn addTarget:self action:@selector(resignKeyboard) forControlEvents:UIControlEventTouchUpInside];
doneBarButtonItem.customView = saveBtn;
[toobar setItems:@[spaceBarButtonItem,doneBarButtonItem]];
if (self.keyboardType == UIKeyboardTypeNumberPad) {
self.inputAccessoryView = toobar;
}else{
self.inputAccessoryView = nil;
}
}
复制代码
用户得本身删除之间的空格,在iOS11后,系统在复制时加入了些乱码类的东西,即便用户删除能看到的空格,仍是有问题。ide
字符串长度13.本地手机号校验确定过不了,服务端校验也不会过。解决方案为:将字符串中的数字所有提出来重组ui
[self.middleTextField addTarget:self action:@selector(middleTextFieldTextChange:) forControlEvents:UIControlEventEditingChanged];
- (void)middleTextFieldTextChange:(UITextField *)textField{
NSString *pureNumbers = [[textField.text componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet]] componentsJoinedByString:@""];
if (pureNumbers && [pureNumbers length] >= 11) {
textField.text = pureNumbers;
}
}复制代码