gpt4 book ai didi

ios - 如何将 UITextView 的光标移动到 TOUCHED LOCATION?

转载 作者:可可西里 更新时间:2023-11-01 05:03:56 27 4
gpt4 key购买 nike

我的问题的目标是制作像 iOS 一样的笔记应用程序。iOS 的笔记应用的要点是他们提供给用户使用超链接或电话号码链接或电子邮件地址作为蓝色文本颜色,我们可以同时编辑文本。

通常,当我们按下 UITextView 时,它会将光标定位到我们触摸的位置。但是如果我使用 UITextView 的 dataDetectorTypes 来放置电话号码或 iOS 笔记应用程序之类的 http 链接,我应该将其设置为不可编辑,否则链接不起作用。这意味着我无法单击 UITextView 和编辑文本。

但我可以使用下面的代码将其设置为可编辑

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self 
action:@selector(editTextRecognizerTabbed:)];

-

- (BOOL) editTextRecognizerTabbed:(UITapGestureRecognizer *) aRecognizer
{
textview.editable = YES;
textview.dataDetectorTypes = UIDataDetectorTypeNone;
[textview becomeFirstResponder];
}

现在我可以编辑文本并且一切正常,但问题是它总是从文本结尾开始,所以用户应该再次点击他们想写的地方。我明白原因。

现在我想将光标移动到我在第一个点按下的位置,然后使用 [aRecognizer locationInView:view] 获得坐标;

那么如何将 UITextView 中的光标移动到我从识别器中获得的位置?

谢谢。

最佳答案

- (void) editTextRecognizerTabbed:(UITapGestureRecognizer *) aRecognizer
{
if (aRecognizer.state==UIGestureRecognizerStateEnded)
{
//Not sure if you need all this, but just carrying it forward from your code snippet
textview.editable = YES;
textview.dataDetectorTypes = UIDataDetectorTypeNone;
[textview becomeFirstResponder];

//Consider replacing self.view here with whatever view you want the point within
CGPoint point = [aRecognizer locationInView:self.view];
UITextPosition * position=[textView closestPositionToPoint:point];
[textView setSelectedTextRange:[textView textRangeFromPosition:position toPosition:position]];
}
}

关于ios - 如何将 UITextView 的光标移动到 TOUCHED LOCATION?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20663614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com