为啥我在基于文档的应用程序中收到无效上下文 0x0 错误?

Posted

技术标签:

【中文标题】为啥我在基于文档的应用程序中收到无效上下文 0x0 错误?【英文标题】:Why I receive invalid context 0x0 error in document-based applications?为什么我在基于文档的应用程序中收到无效上下文 0x0 错误? 【发布时间】:2012-11-18 14:37:26 【问题描述】:

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

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 中使用代码时,一切正常。但是,当我在任何基于文档的应用程序(Document.m)中使用它时,我会收到以下错误:

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

我错过了什么?

【问题讨论】:

【参考方案1】:

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

- (void)drawRect:(NSRect)dirtyRect 
    [super drawRect:dirtyRect];

【讨论】:

以上是关于为啥我在基于文档的应用程序中收到无效上下文 0x0 错误?的主要内容,如果未能解决你的问题,请参考以下文章

UITextField 上的无效上下文 0x0 (Xcode 5)

CGContextDrawImage:加载灰度图像时上下文 0x0 无效

iOS 7.0 下的无效上下文 0x0 和系统降级

关闭 UIImageView 时上下文 0x0 无效

iOS 7.0下的无效上下文0x0和系统性能下降

<错误>:CGContextSaveGState:无效上下文 0x0 错误