【问题标题】:How to change the focus ring color?如何更改对焦环颜色?
【发布时间】:2013-04-10 01:11:16
【问题描述】:

NSImageView的绘图功能中,我想设置我的自定义对焦环颜色,而不是默认的蓝色。我尝试如下代码

NSSetFocusRingStyle(NSFocusRingOnly);
[[NSColor redColor] setStroke];
NSRectFill([self bounds]);

但是颜色仍然是默认的蓝色。我该如何解决这个问题?

更新: NSShadow 类帮助我完成添加对焦环。更改阴影颜色很容易。

NSShadow *shadow = [[[NSShadow alloc] init] autorelease];
[shadow setShadowBlurRadius:5];
[shadow setShadowOffset:NSMakeSize(0.0, 0.0)];
[shadow setShadowColor:[NSColor redColor]];
[shadow set];

我在 NSImageView 的绘制函数中对此进行了编码。

【问题讨论】:

    标签: objective-c macos focus nsview nscell


    【解决方案1】:

    解决这个“问题”的唯一方法就是自己画对焦环。 NSFocusRingStyle 代码旨在使您可以轻松地以用户选择的焦点样式绘制焦点环,其中包括他们能够设置焦点环颜色。

    您无法轻易更改对焦环颜色的设计,因为它是操作系统主题的一部分,因此应该在用户的控制之下(根据 HIG)。如果您有特殊情况,例如需要根据图像内容自适应地为对焦环着色,则必须从头开始创建自己的对焦环。

    【讨论】:

    • 我根据你找到的,在NSImageView的draw函数中,我用NSShadow类完成了这个。和对焦环看起来一样。谢谢。
    猜你喜欢
    • 2016-01-22
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 2011-09-10
    相关资源
    最近更新 更多