我现在正在编写一个具有 3 UITextField
s 的简单应用程序,如果我编辑一个,其他两个应该与它一起扩展。
我尝试使用
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
这种方法,但是:
- 替换字符串是输入的最后一个字符
- 无法弄清楚退格如何在那里工作
- 它被称为有点太早了
如果我可以“修复”第一点(通过发送
[NSString stringWithFormat:@"%@%@", [textField text], string];
作为参数),它不会“修复”第二点,因为string
变量是:
(lldb) po string
(NSString *) $1 = 0x0080cf14 <object returned empty description>
所以问题是:是否有任何方法被调用 AFTER textFieldShouldChangeCharactersInRange:
?或者有没有办法:
textFieldShouldChangeCharactersInRange:
在方法中返回 YES- 然后调用一个方法来更改其他 2 个的值
UITextField
?
编辑
我可以使用以下内容:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
[self performSelector:@selector(myMethod:) withObject:textField afterDelay:0.1];
return YES;
}
但这似乎不是最安全的解决方案