# Mac App Review Guideline 4 rejection: no way to reopen the window > Apple rejects Mac apps under Guideline 4 (Design) when closing the main window leaves no menu item to bring it back. Why SwiftUI and AppKit apps end up there, the two fixes Apple suggests, and a 30-second test. - Canonical page: https://obelisk.club/blog/app-review-guideline-4-mac-window-reopen - Author: Peter Zhang - Published: 2026-10-30 - Tags: app-review, app-store, guideline-4, mac, swiftui, appkit, rejection, indie A **Guideline 4 (Design)** rejection that says there is "no menu item to re-open" the main window means a reviewer closed your Mac app's window and, while the app kept running, could not get it back from the menu bar. The fix is either a menu item that reopens the window (a Window menu entry, or a SwiftUI `Window` scene) or, for a single-window app, saving data and quitting when the window closes. This one only happens on the Mac. We received this exact rejection on our own Mac utilities, so it is worth closing the window and looking for the way back by hand before you submit a Mac app. If your message cites more than Guideline 4, paste your rejection message into the [App Review rejection decoder](/tools/app-review-rejection-decoder) to see each part. ## What Apple said Apple's message read: "when the user closes the main application window there is no menu item to re-open it." Apple offered two ways out: - "implement a Window menu that lists the main window so it can be reopened, or provide similar functionality in another menu item", or - "if the application is a single-window app, it might be appropriate to save data and quit the app when the main window is closed." ## Why it happens **SwiftUI.** If the main scene is a `WindowGroup`, Apple's docs say the app "continues to run even after closing all of its windows." The Window menu only lists *open* windows, so after ⌘W the window is gone from it. The menu way back is File > New, which opens a new window from the group. Some single-window apps remove it with `CommandGroup(replacing: .newItem) { }` because "New" makes no sense for them. That leaves no menu item at all. **AppKit.** Unless your app delegate returns `true` from `applicationShouldTerminateAfterLastWindowClosed(_:)`, the app stays running after its last window closes. If nothing in the menus calls the window back, you get the same dead end. If you create the window yourself in Swift, also set `isReleasedWhenClosed = false` (Apple's docs say Swift and ARC code needs to; it defaults to `true` for `NSWindow`) and keep a strong reference, so the same window can be shown again. ## How to fix it **SwiftUI, single window: use a `Window` scene.** Apple's docs say the Window menu lists singleton windows for you, and that "if your app uses a single window as its primary scene, the app quits when the window closes." That covers both of Apple's suggestions. Save the user's work as it changes, since closing the window now quits. ```swift @main struct NotesApp: App { var body: some Scene { Window("Notes", id: "main") { ContentView() } } } ``` **SwiftUI, keep `WindowGroup` but quit on close:** add an app delegate with `@NSApplicationDelegateAdaptor` and return `true` from `applicationShouldTerminateAfterLastWindowClosed(_:)`. Or keep File > New instead of replacing `.newItem` with nothing. **AppKit:** either quit on close, after saving: ```swift func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { true } ``` or keep the window alive and give it a way back. Add a Window menu item whose action calls `mainWindow.makeKeyAndOrderFront(nil)` (for example with `NSApp.windowsMenu?.addItem(withTitle:action:keyEquivalent:)`), and handle a Dock click too: ```swift func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool { if !flag { mainWindow.makeKeyAndOrderFront(nil) } return true } ``` AppKit calls this when the user clicks the Dock icon or double-clicks the app again while it is running. The Dock click is a courtesy; Apple's message asks for a **menu item**, so do not ship the Dock handler alone. ## FAQ ### How do I fix "no menu item to re-open" the main window on a Mac app? Give the user a menu item that brings the window back, such as a Window menu entry whose action calls `makeKeyAndOrderFront`, or save data and quit the app when the main window closes. Apple's message offers both options. ### How do I make a SwiftUI Mac app reopen its main window? For a single-window app, use a `Window` scene instead of `WindowGroup`: the Window menu lists it, and the app quits when the window closes. If you keep `WindowGroup`, either return `true` from `applicationShouldTerminateAfterLastWindowClosed(_:)` or keep File > New. ### Should my Mac app quit when the last window closes? For a single-window app, Apple's message says it might be appropriate to save data and quit when the main window is closed. In AppKit, return `true` from `applicationShouldTerminateAfterLastWindowClosed(_:)` and save the user's work first. ### Is reopening the window from the Dock enough for App Review? No. Handling a Dock click with `applicationShouldHandleReopen` is a courtesy, but Apple's message asks for a menu item, so do not ship the Dock handler alone. ## 30-second test Launch the app, press ⌘W, and look for a way back using only the menu bar: the Window menu, the File menu, the app menu. Either the app has quit (and your work was saved) or a menu item reopens the window. If neither, a reviewer will find the same thing. Then click the Dock icon once and check that the window returns. Other Mac-only rules are in [2.4.5, sandbox saves and update checks](/blog/app-review-guideline-2-4-5-mac-app-store). For a broader pre-launch pass, see [2.1, App Completeness](/blog/app-review-guideline-2-1-app-completeness-rejection) and the [toolkit page](/toolkit). *These notes are from Obelisk Club's own submissions. Apple's wording and APIs change; check the current App Review Guidelines and Apple's documentation for exact behaviour.*