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