自定义键盘设置光标位置

时间:2012-05-14 06:05:59

标签: iphone objective-c ios ipad uitextfield

我有一个文本字段点击,其中显示包含数字0-9和退格按钮的自定义键盘。我能够删除文本末尾以及字符串中间的文本。但是当我从中间某处删除文本时,光标会跳到结束位置。我希望光标在删除文本时保持在同一位置。 请尽快回复并提前致谢。

1 个答案:

答案 0 :(得分:4)

首先获取光标的初始位置(或所选范围的结尾):

UITextRange *selectedRange = [textField selectedTextRange];
NSInteger offset = [textField offsetFromPosition:textField.endOfDocument toPosition:selectedRange.end];

修改textField的文本后,使用UITextPosition重置光标位置,如下所示:

UITextPosition *newPos = [textField positionFromPosition:textField.endOfDocument offset:offset];
textField.selectedTextRange = [textField textRangeFromPosition:newPos toPosition:newPos];