私は UITextFieldDelegate を使用していますが、使用している方法は次のとおりです。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
テキストが編集される前にのみ発生します。文字を入力した後のテキストの長さが必要です。上記の方法を使用すると、常に 1 文字遅れます。
私は UITextFieldDelegate を使用していますが、使用している方法は次のとおりです。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
テキストが編集される前にのみ発生します。文字を入力した後のテキストの長さが必要です。上記の方法を使用すると、常に 1 文字遅れます。
これを試して、新しい長さを取得してください。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger length = [[textField text] length] - range.length + string.length;
return YES;
}
あなたがする必要があるのは、「Editing Changed」イベントの UITextField にメソッドを接続することです。その後、ユーザーが文字を入力 (または削除) するたびに、そのメソッドが即座に呼び出されます。それが役に立てば幸い!