NSTextView, добавление текста и плавная прокрутка

Я пытаюсь реализовать плавную прокрутку в представлении истории чата, которое я реализовал, однако, если добавляемое мной содержимое достаточно велико, плавная прокрутка будет прокручиваться только для нескольких строк.

Мое первое предположение заключалось в том, что вид еще не перерисовывался ... не тот случай, даже при принудительном немедленном рисовании с -display он все равно прерывается.

- (void)scrollAnimated:(BOOL)animated
{
    if( animated )
    {
        NSClipView *clipView = [[_chatHistoryView enclosingScrollView] contentView];

        [NSAnimationContext beginGrouping];
        [[NSAnimationContext currentContext] setDuration:0.100f];
        NSPoint constrainedPoint = [clipView constrainScrollPoint:NSMakePoint(0, CGFLOAT_MAX)];
        [[clipView animator] setBoundsOrigin:constrainedPoint];
        [NSAnimationContext endGrouping];
    }
    else
    {
        NSRange range;
        range.location = [[_chatHistoryView textStorage] length];
        range.length = 1;
        [_chatHistoryView scrollRangeToVisible:range];
    }
}

Что я делаю не так?

12
задан Charles 2 February 2012 в 18:05
поделиться