Mac OS X имеет окна с двойной буферизацией .
Вам не нужно ничего делать, чтобы это произошло. Это за кадром.
Вы (почти всегда) явно не рисуете окно в Какао, когда что-то меняется, вы аннулируете область окна. Каркас будет позже спускаться по иерархии представлений и рисовать грязные области окна во вторичный буфер. Затем происходит замена буферов.
При желании вы можете сделать некоторые обещания, позволяющие платформе использовать ярлыки при перерисовке, но они все согласны. Затрагиваются только смежные виды.
Если ваш подкласс NSView реализует метод isOpaque
для возврата YES, то платформа никогда не очистит ничего за вашим представлением и не прорисует ни одно из представлений под ним.
Реализация preservesContentDuringLiveResize
для возврата ДА дает вам некоторые дополнительные обязанности, но может улучшить производительность при изменении размера окна.
10.6 добавил еще два новых API этого типа, layerContentsRedrawPolicy
и layerContentsPlacement
.
Наконец, пользовательский рисунок менее распространен, чем в Windows. Большинство представлений, которые вы видите, поставляются фреймворком, а не подклассами. Среда, поставляемая фреймворком, оптимизирована под яблоко.