UITextfield に入力された 10 桁の電話番号を検証しようとしています。実際には、xxx-xxx-xxxx の形式の番号が必要です。したがって、ユーザーに削除してほしくない - シンボル。
ここで言及されているさまざまなアプローチを使用してみました: Detect backspace in UITextFieldですが、どれも機能していないようです。
私の現在のアプローチは次のとおりです。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (range.location == 12) {
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Invalid Input" message:@"Phone number can contain only 10 digits." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[testTextField resignFirstResponder];
return NO;
}
if (range.length == 0 && [blockedCharacters characterIsMember:[string characterAtIndex:0]]) {
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Invalid Input" message:@"Please enter only numbers.\nTry again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
return NO;
}
if (range.length == 0 &&
(range.location == 3 || range.location == 7)) {
textField.text = [NSString stringWithFormat:@"%@-%@", textField.text, string];
return NO;
}
if (range.length == 1 &&
(range.location == 4 || range.location == 8)) {
range.location--;
range.length = 2;
textField.text = [textField.text stringByReplacingCharactersInRange:range withString:@""];
return NO;
}
return YES;
}
これについて何か考えはありますか?
どうもありがとうございました。