我正在尝试检查输入到文本字段中的每个字符,然后尝试根据输入的最后一个字符打印一些内容。
这是我的代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([textField.text hasSuffix:@"1"]) {
NSLog(@"Number : %@",textField.text);
}
else
{
NSLog(@"NOT ONE : %@",textField.text);
}
return YES;
}
这意味着,只有在输入 1 时,必须在日志中打印“NUMBER : 1”,否则必须打印“NOT ONE : a”或其他内容。
但我得到以下输出:
输入是:123456123
2012-12-21 17:41:14.365 vmsipPhone[1866:c07] NOT ONE :
2012-12-21 17:41:16.125 vmsipPhone[1866:c07] Number : 1
2012-12-21 17:41:17.549 vmsipPhone[1866:c07] NOT ONE : 12
2012-12-21 17:41:19.037 vmsipPhone[1866:c07] NOT ONE : 123
2012-12-21 17:41:20.100 vmsipPhone[1866:c07] NOT ONE : 1234
2012-12-21 17:41:21.694 vmsipPhone[1866:c07] NOT ONE : 12345
2012-12-21 17:41:24.844 vmsipPhone[1866:c07] NOT ONE : 123456
2012-12-21 17:41:25.725 vmsipPhone[1866:c07] Number : 1234561
2012-12-21 17:41:26.836 vmsipPhone[1866:c07] NOT ONE : 12345612
问题是,当我输入 1 时出现第一个 NOT ONE
然后当我输入 2 时: Number : 1 出现
它就像一个字符的滞后。
有人可以解释为什么会这样。我做错了什么吗?