/ / Dodawanie przycisku NS do CALayer w OS X Cocoa - xcode, macos, kakao, animacja rdzenia, calayer

Dodanie NSButton do CALayera w OS X Cocoa - xcode, macos, kakao, core-animation, calayer

Mam widok hostingu warstw zawierający CAlayer,wyświetlając w tym przypadku ładny niebieski nieprzezroczysty prostokąt. Chcę dodać NSButton na górze warstwy, tak aby stał powyżej i poruszał się z niebieskim prostokątem podczas animacji.

Moja dotychczasowa próba jest następująca:

w @interface

IBOutlet NSButton* firstButton;

w @implementation

[layer addSublayer:[firstButton layer]];
firstButton.layer.position=NSMakePoint(0, 80.);

To z powodzeniem przenosi lokalizację przycisku na ekranie, ale to doesn "t przesuń „trafiony cel” przycisku.

Zgodnie z podobnym pytaniem tutaj na listach mailingowych Apple wydaje się, że rozwiązaniem jest przesunięcie NSButtonz setFrameOrigin: na przycisku. Wydaje mi się, że to nie działa, ponieważ zmienia pozycję wyświetlanego przycisku, a także „trafiony cel”. Nie mogę poruszać trafionego celu niezależnie.

Alternatywnie: Czy idę na to wszystko źle? Czy jest na to lepszy sposób?

Odpowiedzi:

1 dla odpowiedzi № 1

Niestety nie możesz przenosić przycisków (w tymtrafiony cel), manipulując ich warstwami. Jest to bardzo niefortunne, ale musisz użyć proxy animatora na ramce samego przycisku i nie próbować bezpośrednio modyfikować warstwy.