【问题标题】:Cocoa - NSWindow animation when displayed?可可 - 显示时的 NSWindow 动画?
【发布时间】:2011-06-23 00:41:05
【问题描述】:

在显示一个简单的 nswindow 时如何添加某种 CoreAnimation 效果?

谢谢

【问题讨论】:

  • 你能具体说一下你想要什么样的动画吗?
  • “翻转”动画在某种程度上是我更喜欢的动画,这样它对用户来说就不会那么突然了。

标签: objective-c cocoa xcode nswindow


【解决方案1】:

我已经完成了您之前描述的动画。然而,这并不是一件容易的事。由于您的动画超出了窗口本身的范围,因此您需要在一个超大的透明窗口中渲染动画。动画完成后,您可以在真实窗口中排序并移除透明窗口。

您需要窗口的图像用作动画的内容,所以我要做的是订购窗口(并且可能也将其设为关键窗口,以使其看起来集中),但是把它放在屏幕外,这样用户就看不到它了。然后使用CGWindowListCreateImage 抓取窗口的屏幕截图。现在您将拥有创建动画所需的一切。

动画完成后,将真实窗口置于透明窗口之上,然后移除透明窗口。正确计算,使动画中的窗口图像和真实窗口的图像有点棘手,但绝对可行。

【讨论】:

  • 你是怎么把它“远离屏幕”的?我曾尝试使用 setFrame 来做到这一点,但窗口的一小部分仍然始终在屏幕上。 IE。框架不允许我将窗口完全移出屏幕。
  • 没关系,继承 NSWindow 并从 constrainFrameRect:toScreen: 方法返回未更改的帧就可以了!谢谢!
猜你喜欢
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
相关资源
最近更新 更多