Какао фокусировка кольцо цветная анимация - PullRequest
2 голосов
/ 26 июня 2009

Я хочу использовать анимацию кольца фокуса как индикатор неверных данных в поле. Итак, я отправляю становление сталФирстРеспондером: в поле и хочу, чтобы кольцо фокусировки исчезло с красного на цвет по умолчанию.

Я борюсь с Core Animation, но до сих пор не нашел способа сделать это. Возможно ли это?

1 Ответ

3 голосов
/ 30 июня 2009

Я не уверен, что эта стратегия следует HIG, часто более распространено делать что-то вроде отображения постоянного значка, указывающего, что поле не проверяется рядом с полем, но не должно быть слишком сложно получить эффект, который вы ищете.

Возможно, здесь будет проще использовать простую NSAnimation вместо базовой анимации. Стандартный код для рисования кольца фокусировки обычно выглядит примерно так:

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

Этот код будет реализован в drawRect: метод в пользовательском подклассе вашего элемента управления.

Чтобы нарисовать цветное кольцо фокусировки, вам нужно нарисовать прямоугольник самостоятельно, и вы не сможете воспользоваться функцией NSSetFocusRingStyle. Цвет будет удален из NSAnimation, которая также установит элемент управления для перекраски. Поскольку вы не используете средства Cocoa для рисования кольца фокусировки, вам также, вероятно, потребуется вставить содержимое вашего представления, чтобы у вас было место для рисования кольца.

Дополнительная информация о NSAnimations доступна в Руководстве по программированию анимации для какао

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...