UI テキスト フィールドで電話カード番号フォーム ユーザーを取得しています。数値の形式は次のようになります
123-4567-890
ユーザーが123を自動的に入力するUITextField
と、4567の後に同じように挿入されます。
私はUITextField
デリゲートメソッドで次のコードを使用してそれを行いました:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
{
NSLog(@"***** %d",textField.text.length);
if(textField.text.length == 3)
{
textField.text = [textField.text stringByAppendingString:@"-"];
}
return YES;
}
しかし、テキストをクリアしている間に問題が発生し、クリアを開始すると.
最後の 3 桁の 890 がクリアされ、その後 - 追加され、クリアされ、再び追加され、すっごくクリアが停止します。
を使用して一度にすべてのテキストをクリアします
textField.clearButtonMode = UITextFieldViewModeWhileEditing; //To clear all text at a time
ただし、ユーザーは一度に 1 文字ずつ削除する必要があるという要件があります。
それを達成する方法は?