“绘制图像没有意义” - 升级到Mountain Lion后发出警告

时间:2012-08-04 03:43:07

标签: warnings osx-mountain-lion

在我将编程机器升级到MountainLion和XCode到新版本后,每次运行我的应用程序时都会在控制台中显示此警告:

  

在[NSGraphicsContext时]绘制图像没有意义   currentContext]是零。这是一个编程错误。打破空虚   _NSWarnForDrawingImageWithNoCurrentContext()进行调试。这将只记录一次。这可能在将来破裂。

我没有在我的应用程序中的任何地方使用图像,我在整个项目中搜索图像但找不到图像。有人知道是什么原因引起的吗?

我正在使用2个nib文件btw:一个Popover和Mainwindow。它们都不包含图像。

编辑: 我出现了这条线:

    [self.popover showRelativeToRect:[appDelegate.menulet frame] 
                              ofView:appDelegate.menulet 
                       preferredEdge:NSMinYEdge];

但这些对象都不是零。有什么建议吗?

编辑2: Menulet是一个NSView子类btw。所以我传递了一个观点。

4 个答案:

答案 0 :(得分:1)

我尝试设置断点,但是当nib加载时会调用它。所以它非常不具体。我创建了一个nib的副本,然后逐个删除它中的对象,直到警告消失。就我而言,它是一个NSOutlineView。但是,当我添加新的NSOutlineView时,错误又回来了。

我终于可以通过手动重建整个NIB来删除警告。苦心经营但却摆脱了警告。

答案 1 :(得分:1)

如果您有一个在笔尖中初始化但没有设置图像的NSImageView(并且您自己在代码中绘制图像),只需设置它,警告就会消失。

答案 2 :(得分:1)

在我的情况下,这是因为图像大小是{0,0},“没有意义”。 实际上,图像用于NSButton,我以编程方式更改按钮的图像。在一种情况下,按钮应为空,所以我只用[NSImage new]设置一个空图像。 但是出现错误,那么无论我如何更改按钮的图像,按钮始终为空。 将尺寸设置为空图像后,问题就解决了,我可以成功更改按钮的图像。

答案 3 :(得分:0)

在我的情况下,警告导致我用一个矩形重写我的menuIcon(在menuBar应用程序上工作)。尚未解决问题,但我知道它来自我的情况。如果您有菜单栏应用程序,请检查生成图标的代码。

相关问题