Who draws the macOS menu bar?
The menu bar at the top of a macOS screen looks like one surface, but it is assembled from windows owned by several different processes. Each region of the bar has its own owner. This document walks across the bar from left to right and names which app or system process draws each part.
The bar, left to right
+----------------------------------------------------------------------------+
| [Apple] [App Name] [File] [Edit] [View] ... ... [Wi-Fi] [BT] [...] [Clock]|
+----------------------------------------------------------------------------+
\_______________________________/ \_____________________________/
drawn by the drawn by several
FRONTMOST APP OTHER processes
Left side: the app menu
Apple menu (🍎)
Drawn by the frontmost app, as part of its own menu-bar window. AppKit inserts it automatically for every Cocoa app. The contents (About This Mac, System Settings, Recent Items, Sleep, Restart, Shut Down, Log Out) are populated from a system template and route to system-wide actions, but the pixels and click tracking belong to the frontmost app.
App name menu (bold: "Safari", "Finder", "TextEdit", etc.)
Drawn by the frontmost app. Contains About, Preferences/Settings, Services, Hide, Hide Others, Show All, Quit. AppKit populates the standard items; the app can add its own.
File / Edit / View / Window / Help and other app-specific menus
Drawn by the frontmost app. These are the menus the app actually defined in its nib, xib, or code. When you switch apps, this entire left region is replaced because a different app is now drawing the bar.
Right side: status items
The right side is not drawn by the frontmost app. It is drawn by several other processes, each contributing its own small borderless window at the menu-bar level. Those windows do not move when you switch apps.
Modern status cluster: Wi-Fi, Bluetooth, Sound, Focus, Battery, Clock, Control Center button, Now Playing
Drawn by ControlCenter.app (app bundle at /System/Library/CoreServices/ControlCenter.app). One process, many small windows — one per visible item. Clicking an item pops a SwiftUI popover, also owned by ControlCenter. This process has been the owner of most of the right side since Big Sur (2020).
Spotlight, Siri, Notification Center, and legacy menu extras
Drawn by SystemUIServer.app (app bundle at /System/Library/CoreServices/SystemUIServer.app). Historically SystemUIServer owned the entire right side; ControlCenter took over most of it. What remains in SystemUIServer is Spotlight, Siri, Notification Center, and any older .menu bundles from /System/Library/CoreServices/Menu Extras/, which it loads in-process as plugins.
Third-party status icons: Dropbox, 1Password, Slack, Bartender, etc.
Drawn by each app's own process, using NSStatusItem. Dropbox's icon is a window owned by the Dropbox process. 1Password's icon is a window owned by the 1Password process. Each app positions its item cooperatively via SkyLight so they all share the bar region.
Summary table
| Region | Drawn by | Process |
|---|---|---|
| Apple menu | Frontmost app | Whichever app is frontmost |
| App name menu | Frontmost app | Whichever app is frontmost |
| File, Edit, View, Window, Help, etc. | Frontmost app | Whichever app is frontmost |
| Wi-Fi, Bluetooth, Sound, Focus, Battery, Clock, Control Center, Now Playing | Control Center | ControlCenter.app (/System/Library/CoreServices/ControlCenter.app) |
| Spotlight, Siri, Notification Center, legacy menu extras | System UI Server | SystemUIServer.app (/System/Library/CoreServices/SystemUIServer.app) |
| Dropbox, 1Password, Slack icon, and any third-party status item | Each app itself | The owning .app bundle's process (e.g. Dropbox.app, 1Password.app) |
| Compositing the whole thing into one strip | Window Server | WindowServer (daemon, not an .app bundle; binary in SkyLight.framework) |
What Finder actually owns
Finder.app (/System/Library/CoreServices/Finder.app) is not special. It draws the left side of the bar only when Finder is frontmost — which is the default state when no other app is active, because Finder is always running. That is why people assume Finder owns the bar. As soon as Safari becomes frontmost, Safari is drawing the Apple menu and the app menu, and Finder's menu-bar window is ordered out.
What happens during an app switch
Only the left side changes. The old frontmost app's menu-bar window is ordered out; the new frontmost app's menu-bar window is ordered in. ControlCenter's and SystemUIServer's status-item windows do not move, because those processes never deactivated. Third-party status-item windows also stay put, for the same reason.
Caveats
- Non-Cocoa apps (old Carbon, some Java, full-screen games rendering their own UI) may not draw the Apple menu and app menus the standard way. Every modern AppKit app does.
- Full-screen mode hides the entire bar until the cursor reaches the top edge. The same owners reappear when the bar is revealed.
- Menu extras have shifted between macOS releases. The split of items between ControlCenter and SystemUIServer is not stable across versions.