当我推动我的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时,我看到了
我尝试删除最后一个字符并显示空字段
但在其他情况下,当我再次推动这个ViewController时,所有工作都正常,我可以删除最后一个字符
当我删除所有字符并输入新号码然后编辑时,在开始编辑此字段并尝试删除之后 - 一切正常。总是工作正常^但只是第一次工作不好