2012-05-25 34 views
1

因此,我正在尝试使用CAKeyframeAnimation执行一些简单动画时遇到的问题,并且我相信我的问题更多地与未充分了解NSWindow,NSView和CALayer如何协同工作有关。 我有两个主要的问题。 MyContainerWindow(NSWindow子类)和MyMovableView(NSView子类)。我的目标是能够在整个屏幕上来回移动MyMovableView,同时保持通过MyContainerWindow单击任何内容的能力,除非您单击MyMovableView所在的位置。我能够通过在myMovableView.layer上调用-addAnimation:forKeyPath:来完成第一部分,除非无法通过MyContainerWindow单击,否则一切都很好。我可以使窗口变小,但是动画会被窗口边界限制。点击NSWindow/CALayer

要点: 1)MyContainerWindow是initWithFrame到[[NSScreen mainScreen]帧],NSBorderlessWindowMask,延迟没有,缓冲 2)I setWantsLayer:TRUE到MyMovableView 3)MyContainerWindow是清楚的,我希望它是仿佛根本没有一个窗口,但需要它,所以我有一个更大的画布来制作动画。

有没有什么明显的我想念能够点击NSWindow?

在此先感谢!

回答

0

我在这种情况下的解决方案实际上是使用方法:

[self ignoresMouseEvents:YES]; 

我本来希望能够保留对我动画的具体CALayer的鼠标事件,但在另外一些研究,我明白这与自定义从头开始绘制所有东西的成本相关,这对于此特定项目来说并不理想。