如何更改对焦环颜色?

时间:2013-04-17 10:05:21

标签: objective-c macos focus nsview nscell

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的绘图函数中对此进行编码。

1 个答案:

答案 0 :(得分:2)

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

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