如何强制NSPopUpButtonCell重新显示自身?

时间:2008-12-11 20:57:16

标签: cocoa user-interface nspopupbuttoncell

我正在创建NSPopUpButton和NSPopUpButtonCell的自定义子类,以在按钮顶部显示一个单独的图标,而不是通常的文本。

要做到这一点,我要重写

- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView

在我的按钮单元子类中以适当的大小和位置绘制我的图标。当用户将鼠标悬停在按钮上时,我想要更改图像。我唯一的问题是我无法弄清楚如何使按钮单元重新显示(通过再次调用drawInterior ...)。默认情况下,只有在单击按钮或将焦点移动到另一个窗口时才会重新显示。我已经尝试过setNeedsDisplay:YES,但似乎没有这样做。

1 个答案:

答案 0 :(得分:2)

我发现这样做的方法是插入对

的调用
[self updateCell:self.cell];

在我的NSPopUpButton子类中,在我改变单元格显示的图像的任何一点之后立即。