Wie kann ich eine GUI erstellen und auf Cocoa-Ereignisse programmgesteuert reagieren?

8

Ich habe herausgefunden, wie man in Cocoa programmatisch ein Fenster erstellt, aber nicht herausfinden kann, wie ich auf Ereignisse reagieren soll. Das Fenster reagiert nicht auf eine Quit-Anforderung oder einen Klick auf die Schaltfläche.

Ich habe versucht, den folgenden Controller hinzuzufügen und setDelegate / setTarget ohne Glück verwendet:

%Vor%     
Daniel Furrer 17.03.2009, 21:35
quelle

4 Antworten

9

Sie müssen - [NSApplication run] anstelle von - [[NSRunLoop currentRunLoop] run] aufrufen. Der Grund sollte klar sein, wenn Sie die grundlegende Struktur der Methode betrachten:

%Vor%

NSApplication kapselt viel darüber, wie man ein Ereignis erhält, wie man es versendet und wie man Windows aktualisiert.

    
Matt Gallagher 18.03.2009, 01:56
quelle
3
  

Ich habe herausgefunden, wie man in Cocoa programmatisch ein Fenster erstellt ...

Warum? Warum nicht einfach eine Feder machen?

  

Das Fenster reagiert nicht auf eine Quit-Anfrage oder einen Klick auf die Schaltfläche.

Wie würdest du ein Fenster verlassen? Dies ist nicht Windows 3; Anwendungen können unter Mac OS X mehrere Fenster haben. Daher sind das Schließen eines Fensters und das Beenden einer Anwendung getrennte Aktionen.

  

[[NSRunLoop currentRunLoop] run];

Außer in seltenen Fällen ist das Ausführen der Ausführungsschleife der Job von NSApplication, und Sie sollten dies dem Benutzer überlassen. Verwenden Sie NSApplicationMain oder -[NSApplication run] , um die Ausführung der Anwendung zu bestätigen.

    
Peter Hosey 18.03.2009 00:47
quelle
2

Ausgezeichnete Frage. Ich denke, Matt Gallagher hat das bereits beantwortet, aber wenn Sie damit weitermachen wollen, müssen Sie sich mit Apples Ereignishandhabungsdokumentation . Denken Sie daran, dass alles, was Sie programmatisch tun müssen, ein solides Verständnis der Kakao-Grundlagen erfordert.

    
e.James 18.03.2009 02:10
quelle
0

Ich habe einen ganzen Tag nach Antworten auf die GUI- und Menü-Teile dieser Frage gesucht. Es gibt nicht viele aktuelle, prägnante Antworten auf die Frage. Nachdem ich es selbst gelöst habe, habe ich eine Antwort gepostet, die dieses Thema hier anspricht: Cocoa GUI Programmatisch . Ich füge hier einen Verweis hinzu, um Community-Mitgliedern zu helfen, die nach den gleichen Antworten suchen.

    
Cliff Ribaudo 24.02.2014 12:43
quelle

Tags und Links