在UITextView和Text Kit中长按空格区域时,插入符号消失

时间:2013-10-19 08:06:21

标签: ios ios7 uitextview textkit

我正在使用Text Kit在文本视图中呈现一些富文本。

我的问题是iOS 7中似乎存在插入符号的错误。每当您长按文本视图中的空白区域时,插入符号似乎消失,并且没有弹出菜单(剪切,复制,选择等)。

通过查看此简短视频,您可以更好地了解问题:http://cl.ly/1E0s2A2S0t2t

您可以通过从Apple下载IntroToTextKit示例代码来自行尝试。这是项目的链接:http://cl.ly/0h0T0V1Z0D3H

对此的任何变通方法都非常感激。

1 个答案:

答案 0 :(得分:1)

找到解决方案。

UITextView子类并添加以下内容:

    - (UITextPosition *)closestPositionToPoint:(CGPoint)point
{
    point.y -= self.textContainerInset.top;
    point.x -= self.textContainerInset.left;

    CGFloat fraction = 1;
    NSUInteger glyphIndex = [self.layoutManager glyphIndexForPoint:point inTextContainer:self.textContainer fractionOfDistanceThroughGlyph:&fraction];    

    NSInteger index = glyphIndex;
    if (![[self.text substringFromIndex:self.text.length - 1] isEqualToString:@"\n"]) {
        if (index == [self.text length] - 1 && roundf(fraction) > 0) {
            index++;
        }
    }

    NSUInteger characterIndex = [self.layoutManager characterIndexForGlyphAtIndex:index];
    UITextPosition *pos = [self positionFromPosition:self.beginningOfDocument offset:characterIndex];
    return pos;
}