2012-05-14 73 views
1

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

回答

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]; 
+0

非常感谢你,我真的很满意这个代码... –

+0

我想使用RTL语言的光标位置,它应该在所有的应用程序中统一。我怎样才能做到这一点。我正在创建一个RTL自定义键盘。 –