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%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.
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.
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.
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.
Tags und Links objective-c cocoa