【问题标题】:Custom Keyboard Set Cursor Position自定义键盘设置光标位置
【发布时间】:2012-05-21 15:10:34
【问题描述】:

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

【问题讨论】:

    标签: iphone objective-c ios ipad uitextfield


    【解决方案1】:

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

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

    【讨论】:

    • 我想将光标位置用于 RTL 语言,这在所有应用程序中应该是统一的。我怎样才能做到这一点。我正在创建一个 RTL 自定义键盘。
    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    相关资源
    最近更新 更多