2012-02-29 31 views
7

Tôi có một ứng dụng có NSTableView trong cửa sổ. Tôi muốn sử dụng CALayer làm nền cho toàn bộ cửa sổ và chế độ xem bảng. Trong tất cả các thử nghiệm của tôi cho đến nay, CALayer luôn vẽ trên NSTableView, không phải là hiệu ứng mà tôi đang tìm kiếm. Có cách nào để thực hiện công việc này hay tôi chỉ đơn giản là không may mắn vì bản chất của chế độ xem lớp lưu trữ so với NSViews?Sử dụng CALayer làm nền cho các NSView khác

Thiết lập thử nghiệm của tôi là một cửa sổ có tổ hợp NSScrollView/NSTableView thông thường và một NSView anh chị em phía sau nó theo thứ tự xem. NSView được thiết lập là lớp lưu trữ với lớp tùy chỉnh của tôi bên trong nó (chỉ là một lớp với một bộ backgroundColor). Tôi đã thử nghiệm với cài đặt chế độ xem nội dung của cửa sổ để được hỗ trợ lớp, cũng như chế độ xem bảng, cũng như bao bọc NSScrollView trong NSView được hỗ trợ lớp. Kết quả luôn giống nhau.

Cảm ơn bạn đã có bất kỳ thông tin chi tiết nào bạn có thể cung cấp.

Trả lời

2

Rất đơn giản. tất cả các chế độ xem hoặc lớp chồng chéo phải là lớp sao lưu hoặc lớp lưu trữ cho thứ tự chính xác.

bạn có thể đặt [tableview setWantsLayer:YES]
hoặc chỉ cần kiểm tra trong tab lớp khi chỉnh sửa giao diện.

+0

Bạn đã thử nghiệm điều này chưa? Trong các thử nghiệm của tôi với một NSScrollView/NSTableView, cả hai thiết lập để được lớp hậu thuẫn, các CALayer vẫn hiển thị trên đầu trang của họ. –

+0

bạn đã cố gắng sắp xếp lại chúng sau khi khởi tạo? trong awakeFromNib? ví dụ bạn có thể gửi addSubview cho người giám sát của họ theo đúng thứ tự. và chắc chắn rằng superview cũng là lớp được sao lưu. – Remizorrr

Các vấn đề liên quan