每当我的 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);
}