Cocoa 在NSView中隐藏子控件
我有一个包含多个子控件的NSView。我知道我可以调用[childControl setHidden:TRUE],但我想知道是否可以阻止子控件的消息“drawRect:” 我注意到不在NSView上调用[super drawRect:NSZeroRect]不会影响子控件。所以我的问题是谁调用子控件drawRect消息?如果有办法阻止它Cocoa 在NSView中隐藏子控件,cocoa,xcode,nsview,nswindow,nsimage,Cocoa,Xcode,Nsview,Nswindow,Nsimage,我有一个包含多个子控件的NSView。我知道我可以调用[childControl setHidden:TRUE],但我想知道是否可以阻止子控件的消息“drawRect:” 我注意到不在NSView上调用[super drawRect:NSZeroRect]不会影响子控件。所以我的问题是谁调用子控件drawRect消息?如果有办法阻止它 谢谢你,何塞。每次控制装置发生光学反应时,它们都会再次绘制视图。 如果您真的想这样解决这个问题,可以为每个控件创建一个子类,并添加如下代码: -(void)dra
谢谢你,何塞。每次控制装置发生光学反应时,它们都会再次绘制视图。 如果您真的想这样解决这个问题,可以为每个控件创建一个子类,并添加如下代码:
-(void)drawRect:(NSRect)rect {
if (!self.blocked) {
[super drawRect:rect];
}
}
属性“blocked”是一个布尔值,如果要阻止它,必须将其设置为YES或NO。
注意:为了完全隐藏它,必须在控件子类第一次自己绘制之前阻止它