Пользовательское NSWindow с пользовательской тенью

У меня есть подкласс NSWindow, выглядит так

введите описание изображения здесь

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

Поэтому я хотел бы применить более сильный NSShadow к этому.

Я нашел это здесь:

NSWindow с пользовательской тенью

По-видимому, вы не должны, потому что пользовательский интерфейс должен в основном обрабатываться операционной системой. Но окно уже полностью настроено, поэтому я подумал, что все будет в порядке.

Как мне этого добиться?


редактировать

Я забыл упомянуть, я знаю, что я мог бы просто перерисовать NSWindowНо я стараюсь избегать этого.

1 ответ

Решение

Насколько мне известно, нет способа достичь этого, не углубляясь в частные API.

Если вы отчаянно хотите изменить тень, единственный способ, которым вы можете это сделать, - это установить корневой вид в вашем окне на слой, установить тень на этом слое и вставить содержимое, чтобы освободить место для тени. Но это также приносит целый ряд проблем, в том числе захват окна, который должен был быть сделан для нижележащих окон, и отключение изменения размера ручек.

Другие вопросы по тегам