2012-05-25 5 views
1

Итак, я работаю над проблемой, которую я испытываю при попытке сделать некоторую простую анимацию с использованием CAKeyframeAnimation, и я полагаю, что моя проблема связана с тем, что не удается понять, как NSWindow, NSView и CALayer работают вместе. У меня есть два основных объекта. MyContainerWindow (подкласс NSWindow) и MyMovableView (подкласс NSView). Моя цель - анимировать MyMovableView взад и вперед по экрану, сохраняя при этом возможность щелкнуть что-либо через MyContainerWindow, если вы не нажимаете на то, где находится MyMovableView. Я могу выполнить первую часть штрафа, вызвав -addAnimation: forKeyPath: на myMovableView.layer, и все отлично, за исключением того, что я не могу щелкнуть по MyContainerWindow. Я мог бы сделать окно меньше, но тогда анимация будет скопирована по границам окна.Щелчок по NSWindow/CALayer

Важные моменты: 1) MyContainerWindow является initWithFrame на [[NSScreen В начало] кадра], NSBorderlessWindowMask, отложить нет, забуференный 2) Я setWantsLayer: TRUE, чтобы MyMovableView 3) MyContainerWindow ясно, и я хочу, чтобы это было как будто там не было окна, но нужно, чтобы у меня было больше холста для анимации.

Есть ли что-то очевидное, я не могу пропустить NSWindow?

Заранее благодарен!

ответ

0

Мое решение в этом случае было на самом деле использовать:

[self ignoresMouseEvents:YES]; 

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

Смежные вопросы