0

每当我的 UITextField 中的文本发生更改时,我都会尝试使用 UIControlEventEditingChanged 注册更新。然而,发生了一些非常奇怪的事情,handlefieldTextChanged 仅在我删除 UITextField 中的字符时调用,而不是在我输入内容时调用。

这是我的代码:

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

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

现在,handlefieldTextChanged 在头文件中声明,它是一个 IBAction,只是为了查看在 Interface Builder 中连接它是否可以解决任何问题,但它没有。

无论如何是什么导致这种情况发生?无论我尝试什么,我都无法获得真正的文本字段更改更新。

编辑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