2

我使用此代码在视图中绘制一些矩形。这是代码:

CGContextRef myContext =  [[NSGraphicsContext currentContext] graphicsPort];
CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);
CGContextFillRect (myContext, CGRectMake (0, 0, 200, 100 ));
CGContextSetRGBFillColor (myContext, 0, 0, 1, .5);
CGContextFillRect (myContext, CGRectMake (0, 0, 100, 200));

当我使用简单的代码时AppDelegate,一切都很好。但是,当我在任何基于文档的应用程序(in Document.m)中使用它时,我会收到以下错误:

<Error>: CGContextSetRGBFillColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextSetRGBFillColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0

我错过了什么?

4

1 回答 1

3

我想我是个白痴!当前上下文始终设置为主窗口。我可以通过子类化视图并使用以下代码来管理它:

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];
}
于 2012-11-20T11:29:27.537 回答