Voglio sapere come aprire una nuova finestra sul pulsante clic in Cocoa Mac Programming. Aiutami. Sto facendo un'applicazione mac che ha bisogno di aprire una nuova finestra mac su un particolare clic del pulsante.Come aprire una nuova finestra sul pulsante clic in Cocoa Mac Application?
risposta
Se si desidera creare una classe separata per la nuova finestra, questi sono i passi:
- creare una classe che è una classe secondaria di NSWindowController esempio NewWindowController
- Creare una finestra xib per la classe NewWindowController.
Il pulsante codice scatto come:
NewWindowController *windowController = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"]; [windowController showWindow:self];
NSWindowController * wc=[[NSWindowController alloc] initWithWindowNibName:@"your_nib_name"];
[wc showWindow:self];
@ Saurabh-wow! grazie mille! ha funzionato ... grazie ... Sono nuovo per lo stackoverflow ed è piuttosto impressionante ... :) – ShinuShajahan
in realtà stavo cercando lo stesso negli ultimi giorni! :) Ho provato diverso ma non ho sottoclasse NSWindowController !!! – ShinuShajahan
Perché la risposta alla sottoclasse è stata valutata in maniera più elevata di questa? Sicuramente non la sottoclasse è una risposta più semplice, più elegante? – fatuhoku
- creare una classe che è una classe secondaria di NSWindowController esempio NewWindowController
- Creare una finestra xib per la classe NewWindowController.
Il pulsante codice scatto come:
NewWindowController *controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"]; [controllerWindow showWindow:self];
Sì, ma la finestra si chiude, se questo codice è all'interno di alcuni func. Ecco la soluzione.
In blah.h
@interface blah : NSObject {
...
NewWindowController *controllerWindow;
...
}
In blah.m
@implementation
...
-(IBAction)openNewWindow:(id)sender {
controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"You Window XIB Name"];
[controllerWindow showWindow:self];
}
...
È preferibile aggiungere un commento alla risposta esistente (quando possibile) piuttosto che citarlo, rispondere e quindi postare il proprio. –
@AdrianWragg, sì, sono il principiante, quindi mi dispiace per quello. – WildMassacre
Bene ... e come posso chiudere il precedente? Questo codice mantiene aperte due finestre contemporaneamente. – mthama
Swift 3: Nel tuo storyboard andare WindowController -> Identità inspector -> storyBoardID: compilare: MainWindow. Poi dal viewcontroller corrente del circuito il pulsante sullo storyboard per il seguente metodo:
@IBAction func newWindow(_ sender: Any) {
let myWindowController = self.storyboard!.instantiateController(withIdentifier: "mainWindow") as! NSWindowController
myWindowController.showWindow(self)
}
grazie ... ha funzionato bene ... :) hai spiegato bene ... grazie ... stavo cercando qualche giorno e ora funzionava benissimo ... :) – ShinuShajahan
Ho provato la stessa cosa , ma il problema che sto avendo è che la nuova finestra si chiude immediatamente dopo essere stata visualizzata. Non ho alcun codice lì dentro, quindi non vedo cosa sto sbagliando. Qualche idea? – Interfector
@Interfector Sto avendo lo stesso problema .. hai capito? –