【问题标题】:Why are my images in my NSTableView faded out?为什么我的 NSTableView 中的图像淡出?
【发布时间】:2010-12-31 00:50:50
【问题描述】:

首先,有一个NSArrayController(“服务器”),其内容是“服务器”对象的数组。

我还有一个NSTableView 有一个专栏。该列绑定到服务器的“arrangedObjects.status”属性。

我使用自定义NSValueConverter 将该状态转换为列的dataCell 的图像,即NSImageCell

我不明白为什么列中显示的图像是正确的,但总是淡出。只是为了测试,我在表格视图之外有相同的图像进行比较,它画得很好。图片中的颜色不是半透明的。

NSImageCell 是否将图像绘制为褪色?我可以在 IB 中配置一些东西来使它们完全饱和吗?

【问题讨论】:

    标签: cocoa cocoa-bindings nstableview nstablecolumn nsimagecell


    【解决方案1】:

    您可能将图像视图单元格或列的“启用”属性设置为 NO(或在 IB 中未选中)。我相信这会使显示的图像变淡。

    【讨论】:

    • 嗯...图像单元格的“启用”属性肯定会被检查,表格本身的“启用”属性也是如此。表列没有启用的属性。启用的属性也没有绑定到任何东西。但是,通过进行像素比较,图像肯定是在绘制,就好像它们被禁用了一样。
    • 纯猜测:可能是使用了值转换器(如果 NSImageViewCell 不知道如何“设置”新图像,它可能会被绑定机制强制禁用)。您应该能够在不进行任何转换的情况下为其提供图像的原始数据。
    • 想通了。这对我来说似乎很奇怪,但是将 NSImageCell 的边框属性设置为“无”意味着它以半透明的方式绘制图像。为什么会这样,我不知道。
    • 现在我认为它与绑定有关。我可以很好地拖动图像并且没有边框。然后,当我获取该图像实例并绑定它时,它突然变成半透明的。
    【解决方案2】:

    来自 Cocoa-Dev 的 Jim Correia:

    “在 10.6 上,NSImageView 将在控件禁用时将其内容绘制为灰色。

    您的绑定已启用“条件集启用”。”

    【讨论】:

    • 我遇到了同样的问题,但感谢您,我已经解决了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多