Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 如何强制NSPopUpButtonCell重新显示自身?_Cocoa_User Interface_Nspopupbuttoncell - Fatal编程技术网

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

Cocoa 如何强制NSPopUpButtonCell重新显示自身?,cocoa,user-interface,nspopupbuttoncell,Cocoa,User Interface,Nspopupbuttoncell,我正在创建NSPopUpButton和NSPopUpButtonCell的自定义子类,以便在按钮顶部显示一个单独的图标,而不是通常的文本 要做到这一点,我要压倒一切 - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView 在我的按钮单元格子类中,在适当的大小和位置绘制我的图标。当用户将鼠标移到按钮上时,我想更改图像。我唯一的问题是我不知道如何使按钮单元格重新显示(再次调用drawInterior…

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

要做到这一点,我要压倒一切

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

在我的按钮单元格子类中,在适当的大小和位置绘制我的图标。当用户将鼠标移到按钮上时,我想更改图像。我唯一的问题是我不知道如何使按钮单元格重新显示(再次调用drawInterior…)。默认情况下,只有在单击按钮或将焦点移动到另一个窗口时,它才会重新显示。我尝试过setNeedsDisplay:是的,但似乎不行。

我发现的方法是向

[self updateCell:self.cell];
在我的NSPopUpButton子类中,在任何一点之后,我都会立即更改单元格显示的图像