Получить CGContextRef NSView вне drawRect? - PullRequest
6 голосов
/ 16 июля 2009

Мне нужно получить CGContextRef объекта NSView. Не было бы так плохо, если бы я знал, как.

В Carbon это было сделано так:

CGContextRef cgref = (libvlc_drawable_t)GetWindowPort(HIViewGetWindow((OpaqueControlRef*)hiViewRef));

Очевидно, что это можно сделать, создав подкласс NSView (или его подкласса) и перехватив его в его drawRect, но это слишком уродливо.

Ваши идеи?

1 Ответ

9 голосов
/ 16 июля 2009

Я никогда не использовал его, но думаю, что это ваш путь:

[myView lockFocus];
imageContext = (CGContextRef)[[NSGraphicsContext currentContext]
                                     graphicsPort];
... 
[myView unlockFocus];

также обратите внимание на lockFocusIfCanDraw NSView

...