Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

464
Visualizações
Mostrar y ocultar la ventana en lugar de cerrar la aplicación al hacer clic en la aplicación Cocoa

He estado tratando de mostrar la ventana oculta al cerrar (botón rojo), haga clic en la ventana. Lo que me gustaría hacer es ocultar la ventana y cuando un usuario vuelva a hacer clic en mi aplicación, se volverá a mostrar.

Gracias de antemano a todos los desarrolladores que den una respuesta. Soy nuevo en las aplicaciones Cocoa. Soy desarrollador de iOS, por lo que no tengo mucho conocimiento sobre las aplicaciones de cacao.

Traté de ocultar ( :) método y orderOut ( :) método también. pero no funciona.

 class ViewController : NSViewController, NSWindowDelegates { override func viewDidAppear() { self.view.window?.delegate = self } func windowShouldClose(_ sender: NSWindow) -> Bool { //NSApplication.shared.terminate(self) //NSApp.hide(self) //self.view.window?.orderOut(sender) return false } }

Quiero crear una aplicación de temporizador que se ejecute en segundo plano si el usuario hace clic en cerrar, se ocultará en lugar de finalizar. y cuando vuelva a hacer clic en el menú del muelle, volverá a abrir la ventana.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

No me gusta mucho el desarrollo de Mac OS, pero creo que deberías heredar de NSWindowController así:

 class MyWindowController: NSWindowController, NSWindowDelegate { func windowShouldClose(_ sender: NSWindow) -> Bool { NSApp.hide(nil) return false } }

Luego, solo necesita abrir su guión gráfico principal (o el nombre que tenga), elegir Window Controller y configurar su MyWindowController en él:

ingrese la descripción de la imagen aquí

Probé y funcionó para mí.

over 4 years ago · Santiago Trujillo Relatório

0

He encontrado solución. Gracias a la sugerencia de @Silvester de presentar NSViewController. En el evento de clic de botón:

 @IBAction func onButtonClick(_ sender: VSButton) { let animator = ReplacePresentationAnimator() let vc = self.storyboard?.instantiateController(withIdentifier: "identifier") as! yourVC present(vc, animator: animator) }

Clase de animador personalizado:

 class ReplacePresentationAnimator: NSObject, NSViewControllerPresentationAnimator { func animatePresentation(of viewController: NSViewController, from fromViewController: NSViewController) { if let window = fromViewController.view.window { NSAnimationContext.runAnimationGroup({ (context) -> Void in fromViewController.view.animator().alphaValue = 0 }, completionHandler: { () -> Void in viewController.view.alphaValue = 0 window.contentViewController = viewController viewController.view.animator().alphaValue = 1.0 }) } } func animateDismissal(of viewController: NSViewController, from fromViewController: NSViewController) { if let window = viewController.view.window { NSAnimationContext.runAnimationGroup({ (context) -> Void in viewController.view.animator().alphaValue = 0 }, completionHandler: { () -> Void in fromViewController.view.alphaValue = 0 window.contentViewController = fromViewController fromViewController.view.animator().alphaValue = 1.0 }) } } }

Esto funcionará perfectamente con Silvester MyWindowController. Gracias.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda