可可焦点环彩色动画

时间:2009-06-26 14:20:44

标签: cocoa user-interface core-animation

我想使用聚焦环动画作为字段中不正确数据的指示符。所以我发送的是firstFirstResponder:to field并希望聚焦环从红色渐变为默认颜色。

我正在与Core Animation搏斗,但仍然没有找到任何办法。有可能吗?

1 个答案:

答案 0 :(得分: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