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 № 1Niestety 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.