Swift 4.2, Xcode 10, macOS 10.14
Я создал следующий подкласс NSView
, который я поместил в корневом представлении всех моих экземпляров NSPopover
в своей раскадровке.Но я заметил, что когда я переключаю цветовой режим в MacOS Mojave (с темного на светлый или наоборот), он не обновляет цвет фона моего NSPopover
.
class PopoverMain:NSView{
override func viewDidMoveToWindow() {
guard let frameView = window?.contentView?.superview else { return }
let backgroundView = NSView(frame: frameView.bounds)
backgroundView.backgroundColor(color: Color(named: "MyColor")!)
backgroundView.autoresizingMask = [.width, .height]
frameView.addSubview(backgroundView, positioned: .below, relativeTo: frameView)
}
}
Я считаю,это связано с тем, что при переходе в цветной режим эти методы вызывают только ( source ), а not viewDidMoveToWindow()
:
updateLayer()
draw(_:)
layout()
updateConstraints()
Кто-нибудь нашел надежный способ покрасить фон NSPopover
(включая его треугольник)) и он работает без проблем на MacOS Mojave?