Какао - NSWindow анимация при отображении? - PullRequest
4 голосов
/ 08 февраля 2011

Как бы добавить какой-нибудь эффект CoreAnimation при отображении простого nswindow?

Спасибо

1 Ответ

6 голосов
/ 08 февраля 2011

Я сделал анимацию, как вы описали ранее.Однако это была нелегкая задача.Поскольку ваша анимация выходит за пределы самого окна, вам нужно будет визуализировать анимацию в прозрачном окне большого размера.Когда анимация завершится, вы можете заказать в реальном окне и удалить прозрачное.

Вам понадобится изображение окна, чтобы использовать его в качестве содержимого вашей анимации, так что я бы сделал этоокно в (и, вероятно, сделать его также ключевым окном, чтобы оно выглядело сфокусированным), но положите его за пределы экрана, чтобы пользователь не увидел его.Затем используйте CGWindowListCreateImage, чтобы получить снимок экрана с окном.Теперь у вас есть все, что нужно для создания анимации.

После завершения анимации просто разместите реальное окно поверх прозрачного, затем удалите прозрачное окно.Понимание математики так, чтобы изображение окна в анимации и в реальном окне было немного сложным, но это определенно выполнимо.

...