我试图有效地绘制NSView,即使在调整大小时也是如此。根据{{1}}的文档,我可以使用-drawRect:
来确定需要重绘的内容,并且只重绘它。此外,如果我想要实时调整大小保留内容,我应该从-getRectsBeingDrawn:count:
返回YES并覆盖-preservesContentDuringLiveResize
并使用-setFrameSize:
来确定要标记为需要显示的内容。但是在实时调整窗口大小时,在-getRectsExposedDuringLiveResize:count:
内-drawRect:
方法仍然返回NSView的整个边界,而不仅仅是视图中新暴露的部分。我使用下面的NSView子类(自动调整大小以始终填充窗口)并通过向下拖动窗口的底边来确认这一点。
-getRectsBeingDrawn:count: