【问题标题】:iOS place cursor after word in UITextViewiOS 在 UITextView 中将光标放在单词之后
【发布时间】:2016-09-02 13:22:15
【问题描述】:

我在 UITextView 中有一个字符串。

NSString *str = @"Hello world. What @are you @doing ?" 

当我点击 UITextView 时,光标会转到我点击字符串的位置。但我需要它,假设我点击该文本视图的任何字符,光标将自动转到该单词的末尾。例如,我点击“Hello”中的字符“e”,然后光标将放在“Hello”之后。

我该怎么做?

【问题讨论】:

  • 尝试修改textView.selectedRange?获取范围(即索引)并计算下一个非空白字符?
  • 您好,感谢您的回答。光标行为正常。但是如果任何单词都包含任何特殊字符(例如:hello_01),那么光标会继续@“_”。我怎样才能防止这种情况?如何将其视为普通字符串,以便光标移到末尾?
  • 正好,需要自己找下一个空格,设置selectedRange

标签: ios objective-c uitextfield uitextview


【解决方案1】:

您必须了解触控设备的概念和底层结构。 让我解释。 当您有一个文本字段/文本视图时,在视图中并且您的键盘没有显示即。文本字段处于非活动状态。超级视图可能具有除文本字段之外的任意数量的手势识别器。 因此,操作系统只检测到使 UI 元素变为firstResponder,或者更确切地说是活动的触摸。 在文本字段处于活动状态后,操作系统会识别出其他手势模式将在此时发挥作用。在这一刻,您可以点击任何位置(或长按),然后将光标放在您想要的任何字符上。

希望你能理解。

【讨论】:

  • 感谢您的回答。但是是否可以在没有长按或任何手势的情况下做到这一点?只需轻轻一点,我就需要它。
【解决方案2】:

这应该是 textview 的默认行为。你不需要为此做任何额外的设置!如果你长按,那么只有你的光标移动到特定的字符,否则它会移动到单词的末尾。这是默认行为。

【讨论】:

  • 您好,感谢您的回答。光标行为正常。但是如果任何单词都包含任何特殊字符(例如:hello_01),那么光标会转到@“_”。我怎样才能防止这种情况?如何将其视为普通字符串,以便光标移到末尾?
  • 不,我认为这是不可能的,为什么要更改默认行为?
猜你喜欢
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多