是否有必要从重写的drawRect调用[super drawRect:dirtyRect]? 我见过[super drawRect:dirtyRect]
的例子根本没有被调用
-(void)drawRect:(NSRect) dirtyRect
{
// derived class code here
}
在派生类代码之前调用
-(void)drawRect:(NSRect)dirtyRect
{
[super drawRect:dirtyRect];
// derived class code here
}
在派生类代码之后调用
-(void)drawRect:(NSRect)dirtyRect
{
// derived class code here
[super drawRect:dirtyRect];
}
根据标准或规范,所有这些都是正确的(特别是不要调用super drawRect)或者它们恰好正常工作并且可能会打破一些时间。我的意思是它是一个简单的继承案例,其中派生类必须覆盖保持基类行为?
参考答案会有所帮助。
答案 0 :(得分:0)
默认实现不执行任何操作。如果子类执行自定义绘制,则子类应覆盖此方法。
...
如果您的自定义视图是直接的NSView子类,则无需调用super。对于所有其他视图,请在实现中的某个时刻调用super,以便父类可以执行任何其他绘制。