iOS UITextView:如何创建双倍行距的输入文本字段?

iOS UITextView:如何创建双倍行距的输入文本字段?,ios,objective-c,uitextview,textkit,Ios,Objective C,Uitextview,Textkit,这是一个后续行动。我正在尝试创建一个双倍行距的UITextView来输入文本 在我的自定义UITextView中,我已覆盖和-caretRectForPosition:以限制光标的高度。但现在当我选择文本时,选择矩形的高度仍然太高: 我试图通过覆盖UIView的-selectionRectsForRange来克服这个问题。不幸的是,返回数组中的对象是UITextSelectionRects,这是一个不可变的子类。因此,我创建了自己的子类,使高度可变,并在循环中进行了如下更改: - (NSArr

这是一个后续行动。我正在尝试创建一个双倍行距的UITextView来输入文本

在我的自定义UITextView中,我已覆盖和-caretRectForPosition:以限制光标的高度。但现在当我选择文本时,选择矩形的高度仍然太高:

我试图通过覆盖UIView的-selectionRectsForRange来克服这个问题。不幸的是,返回数组中的对象是UITextSelectionRects,这是一个不可变的子类。因此,我创建了自己的子类,使高度可变,并在循环中进行了如下更改:

- (NSArray *)selectionRectsForRange:(UITextRange *)range
{
    NSArray *originalSectionRects = [super selectionRectsForRange:range];
    NSMutableArray *newSelectionRects = [[NSMutableArray alloc] initWithCapacity:originalSectionRects.count];

    // For all the UITextSelectionRects
    for (UITextSelectionRect *selectionRect in originalSectionRects) {
        // Use one with a custom height
        DCTextSelectionRect *newSelectionRect = [[DCTextSelectionRect alloc] initWithTextSelectionRect:selectionRect rectHeight:self.font.lineHeight];
        [newSelectionRects addObject:newSelectionRect];
    }
    return newSelectionRects.copy;
}
现在选择矩形的大小是正确的,但是用于增大和缩小选择区域的蓝色控制柄被截留在左上角


知道是什么导致把手放错地方了吗?我可以试着把它们放在正确的位置吗?

我找到了解决这个问题的方法,但它使用蛮力在每次文本更改时重新计算行片段矩形。如果我能找出是什么导致句柄逃逸到左上角,这仍然是一个更有效、更可取的解决方案。您能附加DCTextSelectionRect的实现吗?