0

UITextField のテキストが変更されるたびに、UIControlEventEditingChanged を使用して更新を登録しようとしています。しかし、本当に奇妙なことが起こっています.handlefieldTextChangedは、何かを入力したときではなく、UITextFieldで文字を削除したときにのみ呼び出されます。

これは私のコードです:

[textField setDelegate:self];
[textField addTarget:self action:@selector(handlefieldTextChanged) forControlEvents:UIControlEventEditingChanged];

- (IBAction)handlefieldTextChanged {
    NSLog(@"handleChange");
}

これで、handlefieldTextChanged がヘッダー ファイルで宣言され、Interface Builder で接続すると何かが修正されるかどうかを確認するためだけに IBAction になりますが、修正されません。

とにかく、これが起こる原因は何ですか?何を試しても、真のテキストフィールドの変更された更新を取得できません。

編集1:

- (NSString *)removeBadWordsFromString:(NSString *)string {
    for (NSString * word in badWords){
        string = [string stringByReplacingOccurrencesOfString:word withString:@"" 
                                                      options:NSCaseInsensitiveSearch range:NSMakeRange(0, string.length)];
    }
    return string;
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    [textField setText:[self removeBadWordsFromString:[NSString stringWithFormat:@"%@%@", textField.text, string]]];
    return (string.length == 0);
}
4

0 に答える 0