【发布时间】:2015-09-14 14:45:37
【问题描述】:
我有一个表格视图。在cellForRowAtIndexPath 我有一个单元格,在那个单元格中有 UITextField。我这样设置文本字段的代表:cell.textField.delegate = self;。我需要在第三个字符上调用我的 API。因此,当用户在文本字段中键入 3 个字符时,会调用 API,因此会调用 shouldChangeCharactersInRange。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (textField.text.length >= 2) {
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring
stringByReplacingCharactersInRange:range withString:string];
[API CALLED WITH BLOCK WITH TEXTFIELD TEXT AS PARAMETER:substring];
}
return YES;
}
问题是当我输入例如“abc”shouldChangeCharactersInRange 时第一次被调用并且参数是“abc”。其次,shouldChangeCharactersInRange 再次被调用,我的文本字段添加了另一个我没有输入的字符,它总是被复制的最后一个字符。所以在这个例子中,它发送“abcc”。你知道,有什么问题吗?
【问题讨论】:
-
你说得对,就是这样。既有趣又奇怪
标签: ios objective-c uitextfield