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