2009-06-26 53 views
2

我想使用聚焦环动画作为字段中不正确数据的指示符。因此,我将发送成为FirstFoundResponder:字段,并希望对焦环从红色淡出为默认颜色。可可聚焦环彩色动画

我正在与核心动画搏斗,但还没有找到任何方式来做到这一点。可能吗?

+0

可你有一个链接到一个对焦环的例子吗? – willc2 2009-06-28 03:04:51

回答

3

我不确定这个策略是否遵循HIG,它通常更常见的做一些事情,比如显示一个指示字段的字段不会在字段旁边验证,但是它不应该太难得到你正在寻找的效果。

在这里使用简单的NSAnimation而不是使用Core Animation可能更容易。 绘制对焦环的标准代码一般无二类似如下:在你控制的自定义子类方法:

[NSGraphicsContext saveGraphicsState]; 
NSSetFocusRingStyle(NSFocusRingOnly); 
[[NSColor clearColor] set]; 
[[NSBezierPath bezierPathWithRect:focusRect] fill]; 
[NSGraphicsContext restoreGraphicsState]; 

此代码将在drawRect中实现。

为了绘制自定义的彩色聚焦环,您需要自己绘制矩形,并且无法从NSSetFocusRingStyle函数中获益。颜色会被驱动离开NSAnimation,这也会使控件重新绘制自己。因为您没有使用Cocoa的工具来绘制聚焦环,所以您可能还需要插入视图的内容,以便绘制圆环。

关于NSAnimations更多信息,在Animation Programming Guide for Cocoa

+0

谢谢乔伊。看起来像做我想做的事情的唯一方法就是按照你所说的手工进行子类化和绘制。我以为我可以用一些属性动画做到这一点,但仍然没有运气。 – Anton 2009-06-30 10:31:48