我有一个带有多个子控件的NSView。我知道我可以调用[childControl setHidden:TRUE],但我想知道是否可以阻止子控件的“drawRect:”消息。
我注意到在NSView上不调用[super drawRect:NSZeroRect]不会影响子控件。所以我的问题是谁调用了child控件的drawRect消息?如果有办法阻止它。
谢谢,何塞。
答案 0 :(得分:0)
每次控件都应该进行光学反应,他们会再次绘制视图。 如果你真的想解决这个问题,你可以为每个控件创建一个子类并添加如下代码:
-(void)drawRect:(NSRect)rect {
if (!self.blocked) {
[super drawRect:rect];
}
}
属性“已阻止”是一个布尔值,如果要阻止它,则必须将其设置为YES或NO。 注意:要完全隐藏它,控制子类必须在第一次自我绘制之前被阻塞。