dies immer wieder laut 10mal sagen aus:
Interface Builder ist mein Freund.
konnte ich genau das, zusammen ein Beispielprojekt, das, was Sie in ca. 5 Minuten tun, wollen von Interface Builder als Teil des Prozesses nutzen. http://www.markdouma.com/developer/ShowWindowWithRedView.zip.
Sie können eine Ansicht nicht anzeigen, ohne sie zuerst in einem Fenster zu platzieren. Bei weitem der einfachste Weg, um so etwas zu machen, ist ein zweites Fenster in Interface Builder zu ziehen, es beim Start nicht sichtbar zu machen, eine generische NSView benutzerdefinierte Ansicht auf das Fenster zu ziehen, seine Klasse auf SRRedView (Ihre rote Sichtunterklasse). Wie von d11wtq gepostet, überschreiben Sie die primitive Zeichnungsmethode von NSView, wie er zeigt (obwohl ich persönlich NSBezierPath :-P bevorzuge).
In Ihrem Controller-Klasse definieren Sie IBOutlets, und solche, bis dann im Interface Builder Haken. Diese bieten Ihnen eine Möglichkeit, die wichtigen Teile Ihrer Schnittstelle zu referenzieren, so dass Sie sie programmgesteuert bearbeiten können.
I hinzugefügt eine IBAction Methode, die die Taste im Hauptfenster zu nennen, ist angeschlossen.Diese Methode sagt einfach dem zweiten Fenster, dass es sich selbst zeigt.
- (IBAction)showWindowWithRedView:(id)sender {
[windowWithRedView makeKeyAndOrderFront:nil];
}
In den 8 Jahren oder mehr, dass ich Cocoa Programmierung getan, ich glaube nicht, dass ich jemals manuell Fenster und Ansichten zu greifen habe erforderlich zu schaffen. Es war schon immer viel schneller, einfach eine andere Nib-Datei zu laden, die die Fenster oder Ansichten enthält, die ich anzeigen muss. Die Verwendung von Interface Builder zusammen mit Xcode zum Erstellen Ihrer App unterscheidet sich ein wenig von der Funktionsweise anderer IDEs. (Insbesondere wenn Sie Elemente in Interface Builder anordnen, erzeugen Sie nicht so viel Code wie Instanzen von UI-Objekten und "fixieren" sie dann in ihrer aktuellen Anordnung in eine .nib-Archivdatei. Wenn Sie die App starten Sie werden wieder zum Leben erweckt, oder zumindest denke ich darüber nach.
Kaufen Sie ein Buch und lernen Sie die Grundlagen. Sie werden diese Route nirgends finden. –