1

NSTableViewカスタム サブクラス内に埋め込まれておりNSScrollView、次のようにプログラムでスクロールすることがあります。

[[self contentView] scrollToPoint:newOffset];
[self reflectScrolledClipView:[self contentView]];

これを行うと、NSTableViewスクロールは正常に行われますが、関連するNSTableHeaderViewものは一緒に移動しません。ただし、マウスを使用して通常どおりスクロールすると、本来のNSScrollViewように一緒に移動します。

おそらく、スクロールすることになっていることを知らせる1行がどこかに欠けているだけだNSTableHeaderViewと思いますが、それが何であるかはわかりません。誰でも助けることができますか?

4

2 に答える 2

2

NSScrollViewええと、マウスでを含むをスクロールするときに、ボンネットの下でどのような黒魔術が行われているのか正確にはわかりませんが、NSTableHeaderViewどこかで内部的に処理しているようです。これを回避するために、(ユーザー入力を処理する関数をオーバーライドすることによって) プログラムでのみスクロールし、次のように自分自身をスクロールします。NSTableViewNSTableHeaderView

NSTableHeader *header = [[self documentView] headerView];
[header setBoundsOrigin:NSMakePoint(newOffset.x,[header bounds].origin.y)];
于 2011-06-08T16:13:01.453 に答える