我正在使用XCode 4.1在目标C中编写一个简单的项目,针对MacOS(非移动设备),并遇到了以下问题:
我的一个按钮(NSButton,坐在股票NSView上面),点击后会间歇性地消失。它不再绘制,背景显示在它的位置。这不是预期的行为,只会偶尔发生一次(可能是20次点击中的一次)。特别奇怪的是,按钮仍然处于活动状态 - 用户可以单击应该显示按钮的空间,并且将采取正确的操作并再次绘制按钮。调整窗口大小也会导致再次绘制按钮。
我尝试了以下修复程序,其中没有一项有效:
有关正在发生的事情的任何想法,以及我如何解决这个问题?谢谢!
编辑:仍然不明白为什么会发生这种情况,但我确实找到了解决办法:在正在消失的那个下方创建一个重复按钮。即使没有绘制,点击也会指向顶部按钮。 Kludge肯定但有效。
答案 0 :(得分:3)
最可能的情况是,按钮和它前面的视图都不在层次结构中,而是具有相同的超视图。如果是这种情况,则绘图行为未定义。
您需要确保按钮是其前面的视图的子项。在代码中,您可以通过调用[parentView addSubView:yourButton]
来执行此操作,并且在界面构建器中,您需要确保将按钮拖动到包含视图内,而不是在其旁边。