在NSOutlineView或NSTableView中选择时如何反转图标

时间:2014-07-15 13:24:36

标签: objective-c cocoa nstableview nsoutlineview

在我的应用中,我使用NSOutlineViewNSTableView(通过NSImageCell)中的图标。

图标看起来很好,但是当选择了行时,图标看不太清楚:

current

在Finder中,例如,所选图标会显示白色否定:

enter image description here

如何在我的应用程序中实现此效果?

1 个答案:

答案 0 :(得分:2)

如果您希望Cocoa自动对您的图像进行着色,则需要确保isTemplate设置为YES。请在https://developer.apple.com/library/Mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSImage_Class/Reference/Reference.html#//apple_ref/occ/instm/NSImage/setTemplate了解详情:

但是,由于您希望图像在正常状态下呈现全彩色,因此使用模板图像不是一个选项,因为它会将其着色为灰色,或者根据上下文的需要。现在你必须选择以下两个选项之一:

  1. 提供备用图像,该图像是普通图像的白色版本,并根据所选择的状态切换/切换。 细胞

  2. 通过自己对正常图像进行着色并按上述方法切换来生成备用图像