Как NSScrollView реализует такое представление контента? - PullRequest
0 голосов
/ 21 мая 2019

enter image description here

Это то, что я видел в другом приложении.Его представление NSScrollView не знает, как достичь трансграничного.

Как этого достичь?

1 Ответ

0 голосов
/ 21 мая 2019

Это поведение было встроено в AppKit начиная с Yosemite (macOS 10.10).Если ваше представление прокрутки расположено рядом с панелью инструментов или заголовком, вам обычно не нужно ничего делать, чтобы содержимое показывалось размытым под верхними панелями.

Если это не работает, вам может потребоваться добавить NSWindow.StyleMask.fullSizeContentView на styleMask вашего окна и настройте макет просмотра контента, используя contentLayoutRect или contentLayoutGuide окна, чтобы явно поместить контент за верхние полосы.

Смотреть WWDC 2014 Сессия 220: Принятие расширенногоОсобенности нового пользовательского интерфейса OS X Yosemite .Он обсуждает поведение и API в разделе под названием «Метки и панели инструментов», который начинается примерно через 7 месяцев.

ОБНОВЛЕНИЕ

Глядя на ваш снимок экрана снова, я замечаю, что содержимое под верхними панелямина самом деле не размыто, так что это не случай встроенного поведения AppKit.

Я считаю, что приложение использует .fullSizeContentView в styleMask окна, а также устанавливаетсвойство titlebarAppearsTransparent окна имеет значение true.Затем приложение добавляет вид с частичной прозрачностью в верхней части окна, перекрывая верхнюю часть вида прокрутки.

Свойство titlebarAppearsTransparent также обсуждается в видео WWDC, которое я привел выше.

...