Ik heb een eenvoudige Cocoa-app met een aangepaste NSCollectionView
die voorrang heeft op drawRect:
om een rode achtergrond te tekenen (ter illustratie).
Ik merkte dat op schijnbaar willekeurige tijden drawRect:
niet zou worden aangeroepen hoewel ik setNeedsDisplay: YES
aanroept. Andere keren werkte het en had de verzamelweergave een rode achtergrond.
Het kostte me een paar uur, maar toen merkte ik ten slotte op dat hoog in de weergavehiërarchie een van de bovenliggende weergaven een laaggesteunde weergave was (ik had "Core Animation Layer" aangevinkt in Interface Builder om voeg een schaduw toe aan een element).
Het veranderen van die bovenliggende weergave om geen gebruik te maken van layer-backing loste het probleem meteen op en drawRect:
wordt dan altijd zoals verwacht aangeroepen.
Wat me in de war brengt is dat met layer-backing ingeschakeld op een bovenliggende weergave, drawRect:
soms, maar niet altijd, zou worden aangeroepen.
Moet ik aannemen dat ik niet betrouwbaar in een subview drawRect:
kan overschrijven als een bovenliggende weergave een layer-back-up heeft?