1

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

4

1 回答 1

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];
于 2012-05-14T10:37:20.507 回答