У меня NSPopover
с NSBox
, и есть подпредставления: MKMapView
и NSImageView
. В темном режиме весь NSBox добавляет гамму / оттенок ко всем подпредставлениям. Это не отображается в светлом режиме (сравните изображения ниже). Вроде что то с NSVisualEffectView
. Как я могу предотвратить / отключить этот эффект?
PS: Этот эффект не отображается в обычном окне. Затронуто только поповер.
Кодируйте нестандартные элементы перетаскивания. Мохаве 10.14.4
- (IBAction)showPopover:(id)sender {
[[self popover] showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSRectEdgeMaxX];
}
Изменить: APR2020 Согласно «Внедрение расширенных функций нового пользовательского интерфейса OS X yosemite» (youtube ) это происходит из-за эффекта яркости цвета заливки. Popover имеет эффектный внешний вид NSVibrantDarkAppearance
(lldb) po [self.view .effectiveAppearance]
▿ 1 element
- 0 : <NSCompositeAppearance: 0x60000210a940
(
"<NSVibrantDarkAppearance: 0x60000170b840>",
"<NSDarkAquaAppearance: 0x60000170ae80>",
"<NSSystemAppearance: 0x60000170afc0>"
)>
lldb) po [self.view .superview]
▿ 1 element
▿ 0 : Optional<NSView>
- some : <NSPopoverFrame: 0x1020a63f0; material: Popover; blendingMode: BehindWindow; state: Active>
Поэтому другое возможное решение - использовать неяркий цвет заливки.