es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Desactivar o eliminar el elemento del menú de impresión en una aplicación de SwiftUI para macOS.

¿Cómo puedo desactivar o eliminar un elemento de menú en una aplicación de SwiftUI para macOS? Por ejemplo, el elemento Imprimir... se muestra en el menú Archivo de forma predeterminada. Pero mi aplicación no utiliza funciones de impresión. ¿Cómo puedo eliminar el elemento de impresión del menú de archivos en una aplicación de SwiftUI para macOS?

Intenté lo siguiente en AppDelegate.swift, pero no funciona:

import Cocoa
import SwiftUI

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    func applicationWillFinishLaunching(_ notification: Notification) {
        if let menu = NSApplication.shared.mainMenu {
            menu.item(withTitle: "Archivo")?.submenu?.item(withTitle: "Imprimir...")?.state = NSControl.StateValue.off
        }
    }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para deshabilitar un elemento de menú en una aplicación macOS SwiftUI, puedes usar el modificador .disabled() en la vista del elemento de menú. Aquí tienes un ejemplo de cómo eliminar el elemento Print... del menú File:

    import SwiftUI
    
    struct ContentView: View {
        var body: some View {
            Menu("File") {
                Button("New") {}
                Button("Open") {}
                Button("Save") {}
                Divider()
                Button("Close") {}
                Button("Quit") {}.keyboardShortcut("q", modifiers: [.command])
                .disabled(true) // deshabilitando el elemento "Print..."
            }
            .menuStyle(BorderlessButtonMenuStyle())
        }
    }
    

    En este ejemplo, establecemos el modificador disabled en true en la vista del botón que representa el elemento de menú “Quit”. Con esto, el elemento de menú estará deshabilitado (en gris) y no se podrá hacer clic en él.

    ¡Espero que esto te ayude!

Comments are closed.