Objective c 如何更改聚焦环的颜色?

Objective c 如何更改聚焦环的颜色?,objective-c,macos,focus,nsview,nscell,Objective C,Macos,Focus,Nsview,Nscell,在NSImageView的绘图功能中,我想设置我的自定义聚焦环颜色,而不是默认的蓝色 NSSetFocusRingStyle(NSFocusRingOnly); [[NSColor redColor] setStroke]; NSRectFill([self bounds]); 但颜色仍然是默认的蓝色。如何解决此问题 更新: NSShadow类帮助我完成添加聚焦环。更改阴影颜色很容易 NSShadow *shadow = [[[NSShadow alloc] init] autorelease

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

解决此“问题”的唯一方法是自己绘制聚焦环。
NSFocusRingStyle
代码的设计目的是使您能够轻松地以用户选择的聚焦样式绘制聚焦环,其中包括他们能够设置聚焦环颜色


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

我根据您的要求找到了聚焦环,并且在NSImageView的绘图功能中,我使用了NSShadow类来完成此操作。聚焦环看起来也一样。谢谢。