3

重複の可能性:
UITextField でバックスペースを検出する

空の UITextfield でバックスペース キー イベントを検出しようとしています。私はこれを見ましたが、それを理解できませんでした。精巧な回答やコードスニペットがあれば役に立ちます

UITextField でバックスペースを検出する

4

2 に答える 2

3

私はそれが不可能であることを発見しました。

UITextField が空の場合、次のデリゲート メソッドは呼び出されません。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

フィールドに常にスペースを入れることでこれを克服しました。バックスペースを検出し、フィールドにスペースしか含まれていない場合は、デリゲート メソッドで NO を返します。

if ([string isEqualToString:@""] && [textField.text isEqualToString:@" "]){
    // Backspace called on 'empty' field.
    return NO;
}

視覚的には、これはフィールドが空であることと同じであり、空のフィールドでデリゲート メソッドが呼び出されないようにするための回避策です。

それが役立つことを願っています。

于 2010-12-04T18:59:04.673 に答える
0

:)私が使用するタイトル「バックスペースの検出」のためだけにUIKeyboardTypeNumberPad

今夜も同じ質問に遭遇します。以下は、それを見つけるための私のコードです。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSLog([NSString stringWithFormat:@"%d", [string length]]);
}

ではUIKeyboardTypeNumberPad、ユーザーは数値またはバックスペースしか入力できないため、文字列の長さが 0 の場合はバックスペース キーでなければなりません。

上記が何らかの助けになることを願っています。

于 2011-12-26T12:45:13.633 に答える