第一次删除符号时UITextField奇怪的行为

时间:2013-05-06 10:30:05

标签: iphone ios 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,并且再次创建了这个textfield的tableview,我也没有遇到麻烦,一切正常。

当我推mu ViewController时,我看到了 enter image description here

我尝试删除最后一个字符并显示空字段

enter image description here

但在其他情况下,当我再次推动这个ViewController时,所有工作都正常,我可以删除最后一个字符

enter image description here

当我删除所有字符并输入新号码然后编辑时,在开始编辑此字段并尝试删除之后 - 一切正常。总是工作正常^但只是第一次工作不好

0 个答案:

没有答案