Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 文本在NSTextFieldCell的子类中消失_Cocoa_Subclass_Nstextfieldcell - Fatal编程技术网

Cocoa 文本在NSTextFieldCell的子类中消失

Cocoa 文本在NSTextFieldCell的子类中消失,cocoa,subclass,nstextfieldcell,Cocoa,Subclass,Nstextfieldcell,我花了很多时间试图弄明白这一点,但运气不好。不久前,有人在苹果的邮件列表上遇到了类似的问题,但没有人回答。基本上,它归结为:我已经对NSTextFieldCell进行了子类化,并重写了drawWithFrame:方法来创建自定义挡板。然后我在方法的末尾调用drawInteriorWithFrame:来绘制文本。除了文本有时消失这一事实外,一切都很完美。除文本外,其他所有内容均已绘制。我想这可能与字段编辑器有关,但我真的不知道。以前有人遇到过这个问题吗?很抱歉,这个问题没有更好,但我觉得有一天其他

我花了很多时间试图弄明白这一点,但运气不好。不久前,有人在苹果的邮件列表上遇到了类似的问题,但没有人回答。基本上,它归结为:我已经对NSTextFieldCell进行了子类化,并重写了drawWithFrame:方法来创建自定义挡板。然后我在方法的末尾调用drawInteriorWithFrame:来绘制文本。除了文本有时消失这一事实外,一切都很完美。除文本外,其他所有内容均已绘制。我想这可能与字段编辑器有关,但我真的不知道。以前有人遇到过这个问题吗?

很抱歉,这个问题没有更好,但我觉得有一天其他人可能会遇到这个神秘的绘图问题,我已经找到了解决办法。子类化NSTextFieldCell的关键在于,当您重写drawWithFrame:时,您需要调用[super drawWithFrame:],否则您可能会遇到这些渲染问题。您可以将单元格的背景色设置为所需的任何颜色,并使用setClip获得所需的外观,但您不想自己绘制所有图形。至少这对我有用。

发布你的代码。你的问题很难说。我不能发布原始代码,因为它与一个大项目紧密集成。我试图创建一个重复意外行为的示例项目,当然我做不到。一切都完全按照预期进行:(.我应该如何调试这样的东西?顺便问一下,每当我调整窗口大小,并强制文本字段重新绘制时,它都会正确绘制文本。因此,这只是一个绘图问题,我不知道我能做些什么来修复它…那么就不可能给出任何直接的答案。