我需要识别被删除的字符。例如,当我删除一个字符“@”时,我需要执行一些操作。有什么简单的方法可以做到这一点?还是我需要将最近输入的字符保存在变量中并检查 shouldChangeCharactersInRange 中的 range.length == 0?
提前致谢。
最佳答案
在我看来,应该是这样的:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *textToChange = [[textField text] substringWithRange:range];
NSRange rangeOld = [textToChange rangeOfString:@"@"];
NSRange rangeNew = [string rangeOfString:@"@"];
if (rangeOld.location != NSNotFound && rangeNew.location == NSNotFound ) {
[self userDidRemoveAtSign];
}
return YES;
}
说明:是的,userDidRemoveAtSign
是您在用户删除“@”符号时的自定义方法。此代码位于 UITextField delegate 中。每次用户更改 UITextField 中的文本、删除、替换或附加字符时,文本字段都会发送此消息
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
委托(delegate)。在这种方法中,我检查替换文本中是否包含 @ 符号,以及它是否包含在替换文本中。
关于ios - 识别 UITextField 或 UITextView 中删除的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048819/