我试图检查每一个字符输入到文本字段,然后尝试根据最后输入的字符打印的东西。
这是我的代码:shouldChangeCharactersInRange:工作不正常
- (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”必须在日志中打印,否则“连一个也没有了”什么的,必须打印。
但我得到以下输出:
输入: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
后来,当我键入2:数字:1出现
它像一个字符的滞后。
有人能解释为什么会这样。我有什么不对吗?
只是改变这一行,如果([字符串isEqualToString:@ “1”]),希望它可以帮助你 –
@prateek但它是如何1周在下一次检查删除此行之后。 – Girish
@Girish:以前你自己明白1发生了,所以再次检查是没有意义的。 –