2014-09-11 10 views
10

Trong một trong các cuộc đàm phán WWDC 2014 trên giao diện người dùng Yosemite mới, nó nói để tránh việc sử dụng NSVisualEffectView trong các lớp mặt nạ. Thật không may lớp nhìn tôi không có một chiếc mặt nạ hình dạng, và kết quả là quan điểm hiệu ứng hình ảnh trong nó có một xấu xí lởm chởm hiệu lực cạnh:NSVisualEffectView với mặt nạ có các góc lởm chởm

gross

Tuy nhiên tôi biết nó phải bằng cách nào đó có thể tạo ra một hiệu ứng hình ảnh đeo mặt nạ xem, một phần là do 2 nguyên nhân:

  • thuộc tính mặt nạ hình ảnh trên NSVisualEffectView tạo ra một, mặt nạ chống alised mịn (nhưng đòi hỏi một nền lột mặt nạ đằng sau nó, và không chỉ một cái nhìn mẹ lột mặt nạ)
  • NSPopoverNSMenu dường như để có thể đạt được một mặt nạ mịn rằng những thay đổi với kích thước:

Smooth

Also smooth

Mặc dù nó là doubtable như thời tiết hay không họ sử dụng NSVisualEffectView, và không phải là một giao diện tùy chỉnh mờ .

Có cách nào tôi có thể đạt được mặt nạ trơn tru này không dựa vào hình ảnh mặt nạ mà là một lớp đường dẫn hoặc hình dạng?

+1

Tha thứ cho tôi vì đã hỏi nhưng tại sao không chỉ sử dụng NSPopover? (đặc biệt là kể từ khi Apple nói rằng bạn nên tránh che giấu NSVisualEffectView) –

+0

@ DavidRönnqvist của nó để làm với cách mà cửa sổ có một scrollview thats masked, mũi tên bên dưới biểu tượng thực sự là một phần của xem nội dung và văn bản sẽ đi qua nó . NSPopover không che giấu nội dung của nó vì vậy bất cứ thứ gì cố gắng tự render trong mũi tên sẽ bị cắt bớt. – Luke

+1

Ngoài ra, một NSPopover thực sự tạo ra một hiệu ứng hơi khác so với một NSVisualEffectView. Dưới đây là ví dụ: https://devforums.apple.com/message/1061741#1061741. Một ví dụ khác: thanh thực đơn OS X có hiệu ứng mờ giống như một NSVisualEffectView trong khi NSMenus trông giống với NSPopover hơn. Nếu bạn chỉ cần mở một menu trong thanh thực đơn thì bạn có thể dễ dàng thấy sự khác biệt giữa hai hiệu ứng. – iMaddin

Trả lời

0

Tôi đã cố gắng để đạt được điều này với một cái nhìn NSWindow một khi trở lại và tôi đã xem qua thư viện tuyệt vời này: https://www.cocoacontrols.com/controls/waythedarkside

Nó cho phép bạn thêm một ánh sáng hay mờ tối để xem bạn/nền. Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm :)

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