Menu Item Images Disappear in macOS 27 and iPadOS 27
A menu item with an image and no title renders as nothing in macOS 27 if you link against the macOS 27 SDK. Apple protects that case on earlier SDKs, automatically showing the image when a menu item’s title and attributed title are both empty.1 Rebuild against 27 and the protection stops applying.
macOS 27 and iPadOS 27 hide most menu item images by default, and what vanishes depends on which SDK you linked against. Apple describes the result as “similar to the behavior prior to macOS 26.0,” which is to say macOS 26 added menu images broadly and 27 takes most of them back.1
Three frameworks are affected and each has a different opt-out. If you searched for preferredImageVisibility and write SwiftUI, that property does not exist for you.
TL;DR
macOS 27 hides menu item symbol images by default for apps linked on macOS 26.0 and later; apps linked on the macOS 27 SDK also lose non-symbol images.12 Icon-only menu items are automatically protected on pre-27 SDKs and lose that protection on a 27 rebuild.3 iPadOS 27 hides images set on menu elements by default.4 AppKit and UIKit expose preferredImageVisibility with .automatic, .visible, and .hidden; SwiftUI uses labelStyle(.titleAndIcon) instead.5 Settings, Share, and Print keep their images system-wide, so you will see some icons and may conclude yours are broken.
What Actually Changes, by SDK
The AppKit behavior arrived in three separate release-note entries, two of them filed as fixes, which is why summaries of this change disagree with each other.
| Linked against | Symbol images | Non-symbol images | Icon-only items |
|---|---|---|---|
| Pre-macOS 26 SDK | unaffected | unaffected | unaffected |
| macOS 26.0 to 26.x | hidden | visible | shown automatically |
| macOS 27 SDK | hidden | hidden | hidden |
The baseline entry states that NSMenu hides all menu item symbol images by default while non-symbol images remain visible, and that the change applies to applications linked on macOS 26.0 and later.1
A second entry extends the hiding: “For applications linked on the macOS 27…