更改后不显示NSTabViewItem图像

时间:2019-04-03 21:32:58

标签: macos-mojave redraw setneedsdisplay nstabview

在macOS的某个地方(也许在Mojave中),以编程方式更改NSTabViewItem中的图像不会刷新选项卡的显示(尽管它实际上代替了image属性)以显示新图像。在macOS的早期版本中,替换映像会导致使用新映像重新显示选项卡。现在,仅使包含NSTabView的窗口失去焦点,或单击选项卡将重新绘制新图像。将setNeedsDisplay:发送到NSTabView或其中的任何包含视图都不会执行任何操作。

通过在其NSTabViewItem中删除NSTabView,更改图像,然后将NSTabViewItem重新插入其原始索引位置来解决此问题(在Mojave中)看起来不错。是否有人遇到过这种情况或这种行为的公开原因?

1 个答案:

答案 0 :(得分:0)

尝试执行此操作以强制NSTabViewItem重新显示标签:

NSString *originLable = [self.label copy];
NSString *newLabel = [NSString stringWithFormat:@"%@ ",originLable];
[self setLabel:newLabel];
[self setLabel:originLable];