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

标签 objective-c cocoa nstableview nsoutlineview

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

The icons look fine, but when the row is selected the icons aren't visible very well:

current

例如,在 Finder 中,选定的图标会变成白色底片:

enter image description here

我怎样才能在我的应用程序中实现这种效果?

最佳答案

如果您希望 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. 通过自己给正常图像着色并如上所述切换它来生成替代图像

关于objective-c - 如何在 NSOutlineView 或 NSTableView 中选择时反转图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24759440/

相关文章:

ios - 在表格单元格上显示图像单击

node.js - 以编程方式在 macOS 上创建虚拟显示

ios - UIView 坐标转换异常。转换点 : toView: not work well

cocoa - NSMenu 中的第一项不出现

objective-c - NSOutlineView:拖动项目时避免出现黄色边框?

ios - .m 中@interface 和@implementation 大括号之间的区别

objective-c - 如何限制 NSLog 中的 NSArray 输出

ios - Multipeer Connectivity Framework 不再连接

NSTableView Cell发起的Cocoa QuickLook

objective-c - 如何将 NSColorWell 添加到 NSTableView?