2009-06-26 97 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