UITextField在第一次删除符号时出现奇怪的行为
当我推我的ViewController其中一个文本字段必须有文本,我做到了,这是一切都好
cell.textFieldMain.text = [NSString stringWithFormat:@"+7 (%@) %@-%@",[num substringToIndex:3], [num substringWithRange:NSMakeRange(3, 3)], [num substringFromIndex:6]];
我有把光标放在需要的地方的方法,因为我为textfield做了模板
我的方法:
- (void)setCurcorForTextField:(UITextField *)textField position:(NSInteger)position { UITextPosition *newPosition = [textField positionFromPosition:textField.beginningOfDocument offset:position]; UITextRange *newRange = [textField textRangeFromPosition:newPosition toPosition:newPosition]; [textField setSelectedTextRange:newRange]; }
在我改变我的方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { //other conditions else { textField.text = [NSString stringWithFormat:@"+7 (%@) %@-%@",[num substringToIndex:3], [num substringWithRange:NSMakeRange(3, 3)], [num substringFromIndex:6]]; if (length == 7) [self setCurcorForTextField:textField position:14]; else if (length == 8) [self setCurcorForTextField:textField position:15]; else if (length == 9) [self setCurcorForTextField:textField position:16]; else if (range.length) [self setCurcorForTextField:textField position:17]; } } return YES;
所以当我第一次尝试删除最后一个字符的时候,我把空白字段,但我必须有+7(123)456-789(电话号码有10个数字没有最后删除。在其他情况下,它是工作正常。在下次推ViewController,和tableview与这个textfield再次创build我没有麻烦,一切工作正常。
当我推视图ViewController我看到
我尝试删除最后一个字符和空字段出现
但在其他情况下,当我甚至再次推这个ViewController一切正常,我可以删除最后一个cahracter
当我删除所有的字符,然后input新的数字,然后编辑,开始编辑这个字段,并尝试删除 – 一切正常。 总是工作正常^但只有第一次工作不好