我正在创建NSPopUpButton和NSPopUpButtonCell的自定义子类,以在按钮顶部显示一个单独的图标,而不是通常的文本。
要做到这一点,我要重写
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
在我的按钮单元子类中以适当的大小和位置绘制我的图标。当用户将鼠标悬停在按钮上时,我想要更改图像。我唯一的问题是我无法弄清楚如何使按钮单元重新显示(通过再次调用drawInterior ...)。默认情况下,只有在单击按钮或将焦点移动到另一个窗口时才会重新显示。我已经尝试过setNeedsDisplay:YES,但似乎没有这样做。
答案 0 :(得分:2)
我发现这样做的方法是插入对
的调用[self updateCell:self.cell];
在我的NSPopUpButton子类中,在我改变单元格显示的图像的任何一点之后立即。