Я пытаюсь реализовать плавную прокрутку в представлении истории чата, которое я реализовал, однако, если добавляемое мной содержимое достаточно велико, плавная прокрутка будет прокручиваться только для нескольких строк.
Мое первое предположение заключалось в том, что вид еще не перерисовывался ... не тот случай, даже при принудительном немедленном рисовании с -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];
}
}
Что я делаю не так?