12
próbuję wdrożyć płynne przewijanie w widoku historii czatu I wdrożone, jednak jeśli zawartość ja dołączyć wystarczy sprawnego przewijania duży będzie przewijać tylko kilka linii.NSTextView, dodanie tekstu i płynne przewijanie
Moje pierwsze przypuszczenie było, że widok nie przerysować się jeszcze .. nie w tym przypadku, nawet gdy zmuszając natychmiastowej rysunek z -display nadal łamie.
- (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];
}
}
Co robię źle?
Jestem pewien, że to nie rozwiąże problemu, ale w nieanimowany kodu Twój zakres będzie poza granicami, jak to kończy się na długości + 1. – mattmook
używa tego kodu na chwilę, prawdopodobnie będzie musiał spojrzeć w docs dlaczego (lokalizacja + 1) ostatniego char (ponieważ długość (lokalizacja + 1) chyba) jest akceptowany. –