UITextview光标移动到行尾

时间:2014-02-22 11:20:15

标签: ios uitextview

如果我在UITextview中选择一个位置,则将光标放在文本的末尾(内容)。

我无法获得用户点击文本视图的当前位置。

点击之前,当我在textview enter image description here

中点击6时

单击后,光标移动到文本视图的末尾并显示如下

enter image description here

2 个答案:

答案 0 :(得分:1)

要知道触摸事件发生的位置,请在viewController中实现此方法..

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

现在将textView作为触摸对象&将光标放在那里..我只是在这里给你一个提示..试着找到解决方案..如果有任何问题,请告诉我.. :)

<强>更新

如果textView是可编辑的,则无需在那里编写任何代码。无论你点击哪里,光标都会自动出现。

是的,您正在编写的用于更改textView高度的代码正在影响您的点击&amp;光标位置..

点按后,textView即可获得触摸屏,&amp;然后你的方法被调用。因此,当光标出现时,它出现在相同的矩形但相对于textView的不同位置。如果需要更多信息,请告诉我..

完成编辑后,您可以调整textView的大小。这将解决您的问题...... :)

答案 1 :(得分:0)

如果你知道光标的索引,你可以调用:

NSUInteger cursorLocation =  _textView.selectedRange.location;

您还可以实施 UITapGestureRecognizer 并使用以下方式处理:

- (void)textTapped:(UITapGestureRecognizer *)recognizer
{
    UITextView *textView = (UITextView *)recognizer.view;

    // Location of the tap in text-container coordinates
    NSLayoutManager *layoutManager = textView.layoutManager;
    CGPoint location = [recognizer locationInView:textView];

    location.x -= textView.textContainerInset.left;
    location.y -= textView.textContainerInset.top;

    // Find the character that's been tapped on
    NSUInteger tappedCharacterIndex;
    tappedCharacterIndex = [layoutManager characterIndexForPoint:location
                                                 inTextContainer:textView.textContainer
                        fractionOfDistanceBetweenInsertionPoints:NULL];
}