1) ボタンの後ろにテーブルがない 2) テーブルがロードされた 3) スクロール後
NSTableView の上にボタンを配置すると、スクロール後にアーティファクトが残されます。これを修正する方法を知っている人はいますか?
私の現在の解決策は、テーブルを含むセクションを 2 つに分割することです。下部は、バックグラウンドで無効になっているボタンです。
1) ボタンの後ろにテーブルがない 2) テーブルがロードされた 3) スクロール後
NSTableView の上にボタンを配置すると、スクロール後にアーティファクトが残されます。これを修正する方法を知っている人はいますか?
私の現在の解決策は、テーブルを含むセクションを 2 つに分割することです。下部は、バックグラウンドで無効になっているボタンです。
NSScrollView メソッドを試してください
- (void)addFloatingSubview:(NSView *)view forAxis:(NSEventGestureAxis)axis
すべてのテーブルビューは通常、ScrollView 内にある必要があります。
これは、スクロール ビューがスクロール時にコンテンツをコピーし、パフォーマンスの最適化として新たに発見された部分のみを再描画するように設定されているためです。それをオフにするには、使用します
myTableView.enclosingScrollView.contentView.copiesOnScroll = NO;
ただし、スクロールするとより多くの CPU が使用されます (XIB でこれを行うこともできます。「スクロール時にコピー」チェックボックスを探します)。
おそらくより良いアプローチは、スクロール ビューとボタンをレイヤーでサポートするように切り替えることです。
myTableView.enclosingScrollView.wantsLayer = YES;
myButtonView.wantsLayer = YES;
(繰り返しになりますが、これは XIB ファイルの「レイヤー」インスペクターで設定できます。ここで、各ビューの横にあるチェックボックスをクリックしてレイヤーを指定できます) これで、スクロール ビューは独自のレイヤーからのもののみをコピーします (これはありません)。ボタンが含まれなくなります)。また、テキスト ビューのすべての合成は、グラフィックス カードを使用して行われます。これは不透明なプッシュ ボタンでは問題なく機能しますが、独自のレイヤーの透明な背景にテキストを配置すると (たとえば、タイトル付きの透明なプッシュ ボタンがある場合)、サブピクセル アンチエイリアシングが失われます。