2012-02-29 4 views
7

나는 창에 NSTableView가있는 응용 프로그램을 가지고 있습니다. 전체 윈도우와 테이블 뷰의 배경으로 CALayer를 사용하고 싶습니다. 지금까지의 모든 나의 실험에서, CALayer는 항상 NSTableView를 그립니다. 이것은 내가 찾고있는 효과가 아닙니다. 이 작업을 수행 할 수있는 방법이 있습니까, 아니면 단순히 NSViews에 대한 레이어 호스팅 뷰의 본질 때문에 운이 좋을까요?CALayer를 다른 NSView의 배경으로 사용

내 테스트 설정은 일반적인 NSScrollView/NSTableView 콤보와 뷰 순서대로 그 형제 NSView가있는 창입니다. NSView는 내 사용자 정의 레이어 (backgroundColor 세트가있는 레이어)를 사용하여 레이어 호스팅으로 설정됩니다. 필자는 레이어 백업 된 NSView에 NSScrollView를 래핑하는 것뿐만 아니라 테이블 뷰 자체뿐만 아니라 레이어의 내용 뷰를 설정하여 실험을 해 보았습니다. 결과는 항상 동일합니다.

제공 해주신 모든 정보에 감사드립니다.

답변

2

간단합니다. 겹치는 모든 뷰 또는 레이어는 올바른 순서 지정을 위해 레이어지지 또는 레이어 호스팅이어야합니다.

[tableview setWantsLayer:YES]
을 설정하거나 인터페이스를 편집 할 때 레이어 탭에서이를 확인할 수 있습니다.

+0

테스트 해 보셨습니까? NSScrollView/NSTableView를 사용하여 테스트 한 결과 CALayer가 레이어 백업으로 설정되어 있었지만 CALayer는 여전히 그 위에 표시됩니다. –

+0

초기화 후 다시 정렬하려고 했습니까? awakeFromNib에? 예를 들어 superview에 addSubview를 올바른 순서로 보낼 수 있습니다. superview도 레이어를 지원하는지 확인하십시오. – Remizorrr

관련 문제