usar tecla tab retorno mayuscula mac inicio como boton actualizar accesibilidad cocoa macos xib

tecla - ¿Cómo abrir una nueva ventana en el botón hacer clic en Cocoa Mac Application?



tecla retorno en mac (4)

Quiero saber cómo abrir una nueva ventana al hacer clic en el botón Cocoa Mac Programming. Ayuadame. Estoy haciendo una aplicación mac que necesita abrir una nueva ventana de Mac en un botón en particular.


  1. Cree una clase que sea una subclase de NSWindowController p. Ej. NewWindowController
  2. Cree una ventana xib para la clase NewWindowController.
  3. En el botón, haga clic en el código como:

    NewWindowController *controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"]; [controllerWindow showWindow:self];

Sí, pero la ventana se cierra si este código está dentro de algún func. Aquí hay una solución.

En blah.h

@interface blah : NSObject { ... NewWindowController *controllerWindow; ... }

En blah.m

@implementation ... -(IBAction)openNewWindow:(id)sender { controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"]; [controllerWindow showWindow:self]; } ...


Si desea crear una clase separada para Nueva Ventana, estos son los pasos:

  1. Cree una clase que sea una subclase de NSWindowController p. Ej. NewWindowController
  2. Cree una ventana xib para la clase NewWindowController.
  3. En el botón, haga clic en el código como:

    NewWindowController *windowController = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"]; [windowController showWindow:self];


Swift 3 : en su guión gráfico, vaya a WindowController -> Identity inspector -> storyBoardID: complete: mainWindow. Luego, desde su viewcontroller actual, vincule el botón en el guión gráfico al siguiente método:

@IBAction func newWindow(_ sender: Any) { let myWindowController = self.storyboard!.instantiateController(withIdentifier: "mainWindow") as! NSWindowController myWindowController.showWindow(self) }


NSWindowController * wc=[[NSWindowController alloc] initWithWindowNibName:@"your_nib_name"]; [wc showWindow:self];