【发布时间】:2012-05-21 15:10:34
【问题描述】:
我有一个文本字段,点击该文本字段会出现一个自定义键盘,其中包含数字 0-9 和一个退格按钮。我可以在末尾以及字符串中间删除文本。但是当我从中间的某个地方删除文本时,光标会跳到结束位置。我希望光标在删除文本时保持在原来的位置。 请尽快回复并提前致谢。
【问题讨论】:
标签: iphone objective-c ios ipad uitextfield
我有一个文本字段,点击该文本字段会出现一个自定义键盘,其中包含数字 0-9 和一个退格按钮。我可以在末尾以及字符串中间删除文本。但是当我从中间的某个地方删除文本时,光标会跳到结束位置。我希望光标在删除文本时保持在原来的位置。 请尽快回复并提前致谢。
【问题讨论】:
标签: iphone objective-c ios ipad uitextfield
首先获取光标的初始位置(或所选范围的末尾):
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];
【讨论】: