Home > Back-end >  Disable or remove the print menu item in a SwiftUI macOS app
Disable or remove the print menu item in a SwiftUI macOS app

Time:01-09

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
        }
    }
    
}

CodePudding user response:

[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.

  •  Tags:  
  • Related