NSWindow тень с прозрачностью, как обрезать определенную область - PullRequest
0 голосов
/ 06 июля 2018

В нашем приложении OS X мы включили тень окна на view.window?.hasShadow = true. Это создаст прекрасную тень над NSWindow. Мы создали отверстие в приложении с помощью пользовательского представления, чтобы видеть фон через него через слой маски.

Наша проблема в том, что тень видна и в области отверстия. Можем ли мы сделать так, чтобы тень не появлялась в прозрачной области. Мы искали, но не получили ничего, чтобы обрезать тень окна в определенной области.

Эта тень создает некоторую проблему в приложении

  1. Мы дали кнопку, чтобы свернуть / развернуть вид с дырой. Таким образом, отверстие будет увеличиваться и уменьшаться в соответствии с этим. В это время окно не будет пересчитывать тень. Мы попробовали view.window?.invalidateShadow(). Но это не имеет никакого эффекта.
  2. Мы рисуем несколько текстов над прозрачной областью. Когда происходит разворачивание раскрытия, мы можем видеть следы нарисованного текста. Он всегда будет там.

Все будет хорошо, если мы изменим размер приложения, которое будет пересчитывать тень. Как мы можем преодолеть эту проблему. Какая будет работа вокруг.

...