@@ -23,13 +23,21 @@ class MenuItemBaseView: NSView {
2323 }
2424 }
2525
26- let effectView : NSVisualEffectView = {
27- let effectView = NSVisualEffectView ( )
28- effectView. material = . popover
29- effectView. state = . active
30- effectView. isEmphasized = true
31- effectView. blendingMode = . behindWindow
32- return effectView
26+ let effectView : NSView = {
27+ if #available( macOS 26 , * ) {
28+ // NSGlassEffectContainerView ?
29+ let view = NSView ( )
30+ view. wantsLayer = true
31+ view. layer? . backgroundColor = NSColor . clear. cgColor
32+ return view
33+ } else {
34+ let effectView = NSVisualEffectView ( )
35+ effectView. material = . popover
36+ effectView. state = . active
37+ effectView. isEmphasized = true
38+ effectView. blendingMode = . behindWindow
39+ return effectView
40+ }
3341 } ( )
3442
3543 var cells : [ NSCell ? ] {
@@ -119,7 +127,7 @@ class MenuItemBaseView: NSView {
119127 super. draw ( dirtyRect)
120128 labels. forEach { $0. textColor = ( enclosingMenuItem? . isEnabled ?? true ) ? NSColor . labelColor : NSColor . placeholderTextColor }
121129 let highlighted = isHighlighted && ( enclosingMenuItem? . isEnabled ?? false )
122- effectView . material = highlighted ? . selection : . popover
130+ setHighlighted ( highlighted)
123131 cells. forEach { $0? . backgroundStyle = isHighlighted ? . emphasized : . normal }
124132 }
125133
@@ -150,4 +158,12 @@ class MenuItemBaseView: NSView {
150158 self . didClickView ( )
151159 }
152160 }
161+
162+ func setHighlighted( _ isHighlighted: Bool ) {
163+ if #available( macOS 26 , * ) {
164+ effectView. layer? . backgroundColor = isHighlighted ? NSColor . controlAccentColor. cgColor : NSColor . clear. cgColor
165+ } else {
166+ ( effectView as? NSVisualEffectView ) ? . material = isHighlighted ? . selection : . popover
167+ }
168+ }
153169}
0 commit comments