Как реализовать анимацию NSToolbarItem, например, evernote

Я хочу реализовать анимацию, похожую на синхронизирующую анимацию приложения evernote в Max OS X.

Кнопка выглядит так:

Когда анимация запускается, вращается только белая стрелка.

Я пытался использовать Core Animationи следующие шаги:

1 я притащил NSButton к панели инструментов и установите его на выходе aBtn. Я установил синее изображение черного фона на aBtn.

2 я создал CALayer переменная экземпляра aLayer и добавить его в aBtn. Так что это может выглядеть как кнопка выше.

3 при нажатии aBtn я добавляю анимацию вращения aLayer. Это работает отлично.

Проблема в том, что когда я хочу настроить панель инструментов, aBtn, показанный в палитре панели инструментов, не имеет aLayer и имеет только синее фоновое изображение.

Затем я попытался найти событие или уведомление для отображения или закрытия палитры панели инструментов. В результате я могу сбросить изображение aBtn до того, как палитра панели инструментов была показана или скрыта. Однако я не мог быть уведомлен, когда палитра панели инструментов была закрыта.

Кто-нибудь может дать какое-нибудь предложение?

Если у вас есть хорошая идея о том, как реализовать эту анимацию, пожалуйста, дайте мне знать.

Спасибо!

1 ответ

Решение

Я создаю GIF для хранения анимации и создаю NSImageView для подарка. Тогда я использую -[NSToolBarItem setView:],

Использовать gif проще, чем реализовывать его с помощью Core Animation.

Другие вопросы по тегам