2012-05-25 62 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的鼠標事件,但在另外一些研究,我明白這與自定義從頭開始繪製所有東西的成本相關,這對於此特定項目來說並不理想。