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.

¿Cómo puedo eliminar la opción “Nueva ventana” en una aplicación de macOS SwiftUI?

Necesito eliminar esta opción en mi aplicación.

Este es mi app delegate:

import AppKit

public class AppDelegate: NSObject, NSApplicationDelegate {
    public func applicationWillTerminate(_ aNotification: Notification) {
        MainViewModel.shared.saveSettings()
    }
    public func applicationDidFinishLaunching(_ notification: Notification) {
        for window in NSApp.windows {
            var style = window.styleMask
            style.remove(.resizable)
            window.styleMask = style
            window.standardWindowButton(.zoomButton)?.isHidden = true
        }
    }
    public func applicationWillFinishLaunching(_ notification: Notification) {
        NSWindow.allowsAutomaticWindowTabbing = false
    }
}

¿Cómo puedo hacer esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar la opción “Salir” del menú de la aplicación, puedes agregar el siguiente código dentro de la función applicationDidFinishLaunching:

    let mainMenu = NSApplication.shared.mainMenu
    let appMenu = mainMenu?.item(withTitle: "Nombre de la Aplicación")
    appMenu?.submenu?.removeItem(at: 0) // índice de la opción "Salir"
    

    Reemplaza “Nombre de la Aplicación” con el nombre real de tu aplicación.

    Este código obtiene el menú principal de la aplicación, encuentra el submenú para el nombre de la aplicación y elimina el primer elemento (que debería ser la opción “Salir”).

    Asegúrate de probar esto en todas las versiones de macOS para garantizar la compatibilidad.

Comments are closed.