为啥我在基于文档的应用程序中收到无效上下文 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)