2012-02-29 10 views
7

Mam aplikację z NSTableView w oknie. Chcę użyć CALayer jako tła dla całego okna i widoku tabeli. We wszystkich moich dotychczasowych eksperymentach CALayer zawsze rysuje NSTableView, co nie jest efektem, którego szukam. Czy istnieje sposób, aby to zadziałało, czy też po prostu nie mam szczęścia ze względu na naturę widoków hostingu warstwowego w porównaniu z NSViews?Używanie CALayera jako tła dla innych NSViews

Moja konfiguracja testowa to okno ze zwykłym zestawem NSScrollView/NSTableView i rodzimym NSView za nim w kolejności widoku. NSView jest ustawiony na hosting warstwy z moją niestandardową warstwą w nim (tylko warstwa z zestawem backgroundColor). Eksperymentowałem z ustawianiem widoku zawartości okna jako warstwowego, jak również samego widoku tabeli, jak również z zawijaniem NSScrollView w NSView z warstwami. Wynik jest zawsze taki sam.

Dzięki za wszelkie informacje, które możesz dostarczyć.

Odpowiedz

2

To jest proste. wszystkie nachodzące na siebie widoki lub warstwy powinny być warstwami lub hostami warstw dla prawidłowego uporządkowania.

można ustawić [tableview setWantsLayer:YES]
lub po prostu sprawdzić w zakładce Warstwy podczas edycji interfejs.

+0

Przetestowałeś to? W moich testach z NSScrollView/NSTableView, oba ustawione jako backwarowane warstwami, CALayer nadal pokazuje się na nich. –

+0

Czy próbowałeś zmienić ich kolejność po inicjalizacji? w awakeFromNib? na przykład możesz wysłać addSubview do ich superview w prawidłowej kolejności. i upewnij się, że super widok jest również wspierany warstwami. – Remizorrr

Powiązane problemy