<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/build-a-macos-menu-bar-utility-in-swiftui-ds2z6dmnf" -->

---
title: Build a macOS menu bar utility in SwiftUI | daily.dev
description: A step-by-step guide to building a macOS menu bar–only app using SwiftUI's MenuBarExtra scene. Covers replacing WindowGroup with MenuBarExtra, choosing between...
canonical: https://daily.dev/posts/build-a-macos-menu-bar-utility-in-swiftui-ds2z6dmnf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Build a macOS menu bar utility in SwiftUI | daily.dev
og:description: A step-by-step guide to building a macOS menu bar–only app using SwiftUI's MenuBarExtra scene. Covers replacing WindowGroup with MenuBarExtra, choosing between...
og:url: https://daily.dev/posts/build-a-macos-menu-bar-utility-in-swiftui-ds2z6dmnf
og:image: https://api.daily.dev/og/posts/Ds2Z6DMNf.png
og:image:alt: Build a macOS menu bar utility in SwiftUI
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a macOS menu bar utility in SwiftUI

**[Nil Coalescing](https://daily.dev/sources/nilcoalescing)** · 5 min read · 0 upvotes · 0 comments

## Summary

A step-by-step guide to building a macOS menu bar–only app using SwiftUI's MenuBarExtra scene. Covers replacing WindowGroup with MenuBarExtra, choosing between menu and window styles, hiding the app from the Dock and app switcher via LSUIElement, adding a quit button, and using a custom icon with NSImage resizing workarounds. Includes code examples for each step and references to related topics like launch-at-login and system-wide services.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://nilcoalescing.com/blog/BuildAMacOSMenuBarUtilityInSwiftUI>

## Similar posts on daily.dev

- [Using SwiftUI to Build a Mac-assed App in 2026](https://daily.dev/posts/using-swiftui-to-build-a-mac-assed-app-in-2026-osppvd4pe) · Lobsters · 2 upvotes · 0 comments
- [App Clips in SwiftUI — Instant Experiences Without Installation](https://daily.dev/posts/app-clips-in-swiftui-instant-experiences-without-installation-0bkjncip4) · Medium · 0 upvotes · 0 comments
- [Liquid Glass Adaptation in UIKit \+ SwiftUI Hybrid Architecture](https://daily.dev/posts/liquid-glass-adaptation-in-uikit-swiftui-hybrid-architecture-zjhbaignh) · Fatbobman · 0 upvotes · 0 comments

---

Tags: [#swift](https://daily.dev/tags/swift), [#mac](https://daily.dev/tags/mac), [#swiftui](https://daily.dev/tags/swiftui), [#xcode](https://daily.dev/tags/xcode)

[View this post on daily.dev](https://daily.dev/posts/build-a-macos-menu-bar-utility-in-swiftui-ds2z6dmnf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Build a macOS menu bar utility in SwiftUI","url":"https://daily.dev/posts/build-a-macos-menu-bar-utility-in-swiftui-ds2z6dmnf","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/build-a-macos-menu-bar-utility-in-swiftui-ds2z6dmnf"},"datePublished":"2026-08-02T07:15:04.833Z","dateModified":"2026-08-02T07:31:41.367Z","description":"A step-by-step guide to building a macOS menu bar–only app using SwiftUI's MenuBarExtra scene. Covers replacing WindowGroup with MenuBarExtra, choosing between...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/eb5cc53eba1599eded606eeea2761b07?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/eb5cc53eba1599eded606eeea2761b07?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Nil Coalescing","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Nil Coalescing","logo":"https://media.daily.dev/image/upload/s--rcEu6sag--/f_auto,q_auto/v1785654899/logos/nilcoalescing?_a=BAMAMicg0","url":"https://daily.dev/sources/nilcoalescing"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/build-a-macos-menu-bar-utility-in-swiftui-ds2z6dmnf","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"swift,mac,swiftui,xcode","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Nil Coalescing","item":"https://daily.dev/sources/nilcoalescing"},{"@type":"ListItem","position":3,"name":"Build a macOS menu bar utility in SwiftUI"}]}
```

