我正在创建一个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];
}