在drawRect之外获取NSView的CGContextRef?

时间:2009-07-16 18:14:39

标签: cocoa macos graphics core-graphics nsview

我需要获取NSView对象的CGContextRef。如果我知道如何,那就不会那么糟糕了。

在Carbon中,这件事是这样做的:

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

显然可以通过继承NSView(或它的子类)并将其捕获到它的drawRect中来完成,但这太难看了。

你的想法?

1 个答案:

答案 0 :(得分:9)

我从未使用它,但它认为这是你的方式:

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

还可以查看NSView的lockFocusIfCanDraw