12
Uyguladığım bir sohbet geçmişi görünümünde düzgün kaydırma yapmayı deniyorum, ancak eklediğim içerik yeterince büyükse, düzgün kaydırma yalnızca birkaç satır kaydırır.NSTextView, ek metin ve düzgün kaydırma
İlk tahminim, görünümün kendisini yeniden çizmediğiydi. Durum değil, hemen çizmeyi zorladığında bile, hala kırılıyor.
- (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];
}
}
Neyi yanlış yapıyorum?
Ben bu sorunu çözmez eminim ama olmayan animasyonlu kodunda Menziliniz bunun yanı aut olacak + 1 uzunluğunda sona erecek. – mattmook
Bu kodu bir süredir kullanmakta olduğum için, muhtemelen, en son çıkan karakterin (konum + 1) (tahmin edilen konum (1)) neden kabul edildiğini gösteren belgelere bakmak zorundayım. –