12
私は実装したチャット履歴ビューでスムーズなスクロールを実装しようとしていますが、追加するコンテンツが十分大きい場合スムーススクロールは数行だけスクロールします。NSTextView、テキストを追加してスムーズにスクロールする
私の最初の推測では、ビューはまだ描画されませんでした。まだ表示されないまま描画を強制する場合でも、それはまだ破損しています。
- (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];
}
}
私は間違っていますか?
私はこれがあなたの問題を解決することはできません確信しているが、非アニメーションコードであなたの範囲はそれとして、範囲外となります長さ+1で終了します。 – mattmook
しばらくの間、そのコードを使っていたのですが、おそらくドキュメント内で最後の文字(location + 1)がなぜ受け入れられているのか(場所+ 1)を調べなければならないでしょう。 –