Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable or remove the print menu item in a SwiftUI macOS app

How can I disable or remove a menu item in a SwiftUI macOS app? For example, the Print... item is shown in the File menu by default. But my application does not use printing features. How would I remove the print item from the file menu in a SwiftUI Mac app?

swiftui print menu item

I tried the following in AppDelegate.swift but it doesn't work:

import Cocoa
import SwiftUI

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    
    func applicationWillFinishLaunching(_ notification: Notification) {
        if let menu = NSApplication.shared.mainMenu {
            menu.item(withTitle: "File")?.submenu?.item(withTitle: "Print...")?.state = NSControl.StateValue.off
        }
    }
    
}
like image 707
wigging Avatar asked Jan 29 '26 08:01

wigging


1 Answers

[per-request @Alexander]

Early SwiftUI project templates had explicit resource for main menu, Main.storyboard (or xib file). If you can find one in your project then just locate menu there and remove Print menu item manually.

like image 115
Asperi Avatar answered Feb 01 '26 00:02

Asperi