On macOS 26 this isn’t really a SwiftUI bug — it’s just a side effect of the big UI overhaul Apple did in Tahoe. A lot of system controls were rewritten, and many things that used to respect .tint or .foregroundStyle simply don’t anymore. NSSwitch in particular ignores all per-control coloring. It only uses the system accent color now, nothing else.
Visual regressions like this are pretty common right after a major redesign. In iOS 18 and macOS 26 there are lots of similar issues where components suddenly stopped honoring tint, shape styles, or started behaving more like raw AppKit views with missing SwiftUI modifiers. There are quite a few styling bugs in general.
That’s why the most reliable solution at the moment is to set a custom AccentColor in your asset catalog. System controls in Tahoe still respect the global accent color, and the Toggle automatically picks it up. No other color modifier works on macOS 26 if you want to keep the native Toggle.
So if you need to preserve the native look and behavior, a global AccentColor is currently the only way to restore custom coloring without switching to a custom ToggleStyle.


AccentColorin your asset catalog.