Пользовательское NSWindow с пользовательской тенью
У меня есть подкласс NSWindow, выглядит так
Меня беспокоит то, что я хотел бы изменить тень. Над стандартным окном, как Xcode прямо здесь, контраст немного слабый.
Поэтому я хотел бы применить более сильный NSShadow
к этому.
Я нашел это здесь:
NSWindow с пользовательской тенью
По-видимому, вы не должны, потому что пользовательский интерфейс должен в основном обрабатываться операционной системой. Но окно уже полностью настроено, поэтому я подумал, что все будет в порядке.
Как мне этого добиться?
редактировать
Я забыл упомянуть, я знаю, что я мог бы просто перерисовать NSWindow
Но я стараюсь избегать этого.
1 ответ
Насколько мне известно, нет способа достичь этого, не углубляясь в частные API.
Если вы отчаянно хотите изменить тень, единственный способ, которым вы можете это сделать, - это установить корневой вид в вашем окне на слой, установить тень на этом слое и вставить содержимое, чтобы освободить место для тени. Но это также приносит целый ряд проблем, в том числе захват окна, который должен был быть сделан для нижележащих окон, и отключение изменения размера ручек.