[英]Correct implementation of NSView drawRect in derived classes
是否有必要從重寫的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) ,或者它們恰好正在工作並且可能會花一些時間。 我的意思是這是繼承的簡單情況,在這種情況下,派生類必須優先考慮保持基類的行為嗎?
參考答案將是有幫助的。
默認實現不執行任何操作。 如果子類進行自定義繪制,則它們應重寫此方法。
...
如果您的自定義視圖是直接的NSView子類,則無需調用super。 對於所有其他視圖,請在實現中的某個時刻調用super,以便父類可以執行任何其他繪制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.