How to change the focus ring color?

2019-10-18 00:52发布

在的绘制函数NSImageView ,我想设置我的自定义对焦环的颜色,而不是默认的蓝色color.I尝试如下代码

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

但颜色仍然默认蓝色color.How我能解决这个问题?

更新: NSShadow类帮助我完成加入焦点ring.It的容易改变的阴影颜色。

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

我在NSImageView的抽签功能代码。

Answer 1:

要解决这个“问题”的唯一方法是自己绘制对焦环。 该NSFocusRingStyle代码的设计很容易让你在绘制用户选择的焦点风格,其中包括他们能够设置对焦环的颜色对焦环。

它是由设计,你不能很容易地改变聚焦环的颜色,因为它是OS的主题的一部分,因而应该是在用户的控制下(根据HIG)。 如果你有一个特殊的情况,如需要自适应颜色基于图像的内容的对焦环,你将不得不从头开始创建自己的调焦环。



文章来源: How to change the focus ring color?