いくつかのオブジェクトを(を使用して)NSCell
ビューに直接描画し、 NSViewのセレクターを使用してインスタンスを描画するサブクラスを作成しています。drawInRect:fromRect:operation:fraction:respectFlipped:hints:
NSButton
addSubview:
最初の方法を使用して描画されたオブジェクトはすべて正しく描画されますが、NSButton
正しく描画するのに問題があります。問題は、私のNSButton
インスタンスが適切な場所に描画されますが、何度も描画されることです。
私はこれをインターネットでしばらく調べており、キャッシュの使用を提案する人もいますが、これが効率的かどうかはわかりません。(forループを使用してボタンを含む配列に移動すると、大量のデータを表示するため、間違いなくスクロールが遅くなります...)
これをどのように行いますか?私は間違った木を吠えていますか?
これは関連するコードです:
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
NSRect _controlRect = cellFrame;
float _Y = cellFrame.origin.y;
NSRect _accessoryRect = NSMakeRect(_controlRect.size.width - 70.0f, _Y + 9.0f, 50.0f, 23.0f);
_switch = [self _choiceSwitch];
[_switch setFrame:_accessoryRect];
[controlView addSubview:_switch];
}