“Does not make sense to draw an image” - Warning after upgrade to MountainLion

旧时模样 提交于 2019-12-01 17:22:26

问题


After I upgraded my programming machine to MountainLion and XCode to the new version I get this warning printed into the console everytime I run my application:

It does not make sense to draw an image when [NSGraphicsContext currentContext] is nil. This is a programming error. Break on void _NSWarnForDrawingImageWithNoCurrentContext() to debug. This will be logged only once. This may break in the future.

I'm not using an Image anywhere in my Application and I searched the whole project for an image but couldn't find one. Does anybody know what could cause this?

I'm using 2 nib files btw: One Popover and the Mainwindow. Neither of them contains an image.

Edit: I found the line when this appears:

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

But none of those object is nil. Any suggestions?

Edit 2: The Menulet is a NSView subclass btw. So I'm passing a view.


回答1:


I tried setting the breakpoint but it is called when the nib loads. So it is very non-specific. I created a copy of the nib and then deleted objects from it one by one until the warning went away. In my case, it was an NSOutlineView. But as as soon as I added a new NSOutlineView, the error came back.

I was finally able to remove the warning by rebuilding the entire NIB by hand. Painstaking but it got rid of the warning.




回答2:


If you have a NSImageView that's initialized in the nib but with no image set (and you draw the image yourself in code) just set it and the warning will be gone.




回答3:


In my case, it's because the image size is {0,0}, which "doesn't make sense". Actually, the image is for a NSButton, I change the button's image programmatically. In one case, the button should be empty, so I just set an empty image with [NSImage new]. But the error occurs, then no matter how I change the button's image, the button is always empty. After setting a size to the empty image, the problem is solved, and I can change the button's image successfully.




回答4:


In my case the warning resulted in rewriting my menuIcon with a rectangle (Working on a menuBar application). Haven't solved the problem yet, but I know where it came from in my case. If you have a menubar application, check the code which generates your icon.



来源:https://stackoverflow.com/questions/11805741/does-not-make-sense-to-draw-an-image-warning-after-upgrade-to-mountainlion

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!