我正在尝试使用UIControlEventEditingChanged在我的UITextField中发生文本更改时注册更新。无论发生什么事都很奇怪,只有在我删除UITextField中的字符时才会调用handlefieldTextChanged,而不是在我输入内容时调用。
这是我的代码:
[textField setDelegate:self];
[textField addTarget:self action:@selector(handlefieldTextChanged) forControlEvents:UIControlEventEditingChanged];
- (IBAction)handlefieldTextChanged {
NSLog(@"handleChange");
}
现在handlefieldTextChanged在头文件中声明并且是一个IBAction,只是为了看看在Interface Builder中连接它是否会修复任何东西,但它没有。
无论如何是导致这种情况发生的原因?无论我尝试什么,我都无法获得真正的文本字段更改更新。
EDIT1:
- (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);
}