在UITextView的属性文本中的最后一个字符之后调用链接方法

时间:2018-03-23 01:34:59

标签: ios uitextview nsmutableattributedstring

我有一个textView,它有一个UITapGesture,它将此方法作为选择器hello foo bar qux 。当我在textview的最后一行下面或者在显示它的最后一个字符之后点击一下它将调用我最后一个字符的属性文本上的方法,因为看起来:- (void)textTapped:(UITapGestureRecognizer *)recognizer返回最后一个字符。在这种情况下,我不希望它使用最后一个字符,因为我不想进入我的条件语句。我尝试更新逻辑,因此它会layoutManager characterIndexForPoint:location inTextContainer:textView.textContainer fractionOfDistanceBetweenInsertionPoints:NULL];并处理这种情况很好,但是如果我点击最后一个字符,那么它就不会调用该函数。有没有办法防止最后一个字符被点击时没有被点击,只是获取精确的字符作为点击或其他方式来防止调用该方法。

characterIndex < textView.textStorage.length - 1

1 个答案:

答案 0 :(得分:1)

我认为您不需要使用characterIndexForPoint,而是需要使用glyphIndexForPoint文档,您可以在此处找到它们。 Apple Documentation

现在在文档中,它清楚地告诉您在找到字形后要遵循的步骤,并且我将从文档中的段落引用:

  

如果没有字形在点之下,则返回最近的字形,其中   最近的是根据选择的要求定义的   老鼠。客户谁希望确定这一点是否真实   在返回的字形范围内,应该遵循这个   致电boundingRectForGlyphRange:inTextContainer:并测试是否   该点落在该方法返回的矩形中。如果   partialFraction是非NULL,它通过引用返回的分数   返回的字形位置与之间的距离   下一个字形的位置。