Erstellen Sie eine benutzerdefinierte Ansicht mit einer Feder und verwenden Sie es in einem Fenster
Ich zu kämpfen haben, ganz ein bisschen mit diesem problem und ich kann nicht scheinen, um es herauszufinden selber.
Dies ist die situation:
Ich möchte eine benutzerdefinierte Feder-based view mit seinen eigenen ViewController. Dann möchte ich hinzufügen, um diese Ansicht zu einem Fenster. Daher sollte das Fenster enthalten meine benutzerdefinierte Ansicht.
Also gehe ich über und schaffen einen sehr einfachen Beispiel wie diesem:
- In Xcode 4, ich erstelle einen neuen, leeren Dokument-basierte Cocoa-Anwendung
- Ich eine neue Cocoa-Klasse, die erweitert werden soll aus
NSViewController
(die bewirkt, dass die Feder geschaffen werden, zusammen mit der .h und .m-Datei. Der Namen des erstellten .h, .m und .xib-Datei istFaceViewController
für Testzwecke sollte es nur text anzeigen für jetzt. - Ich öffne die
NSViewController.xib
im InterfaceBuilder und fügen Sie ein multi-line-text-Komponente, und legen Sie Sie in die benutzerdefinierte Ansicht, die bereits in der xib-Datei. Ich mache die Texte umfassen die gesamte Ansicht. - In
MyDocument.xib
ich auch hinzufügen, einCustom View
Platzhalter, die ersetzt werden sollte, mit meinen benutzerdefinierten FaceView.
Von diesem Ausgangspunkt aus auf alles, was ich habe versucht, um die erstellte View + ViewController auf meine MyDocument.xib
gescheitert, und der Bereich, wo mein text angezeigt werden sollte bleibt leer (genauso wie der hintergrund von dem darunter liegenden Fenster.
Also meine Frage ist wirklich, was ich tun muss, damit mein FaceView geladen wird in die Benutzerdefinierte Ansicht, die ich gelegt auf MyDocument.xib
. Hier sind einige Dinge, die mir unklar:
- Die benutzerdefinierte Ansicht erstreckt sich von
NSView
so wollte ich dies ändern, um meine FaceView aber die Ansicht nicht vorhanden ist, als eine Klasse, sondern ist definiert im InterfaceBuilder in der xib -, brauche ich hier etwas anderes alsNSView
? - Muss ich alloc, init der
FaceViewController
im code oder ist es genug, um ziehen Sie es an meine zwei .xibs? - Kann ich InterfaceBuilder meine FaceView oder muss ich dies programmatisch tun?
Dachte ich wirklich, dass erstellen einer benutzerdefinierten Ansicht wie diese wäre ein Stück Kuchen, aber es stellte sich heraus, ganz im Gegenteil, so weit, so dass jede Hilfe wäre sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Ihre FaceViewController entweder durch hinzufügen eines der MyDocument.xib-oder indem Sie es mit alloc, init.
Ihre FaceView du musst es tun, programmgesteuert können Sie
wenn Sie möchten, ersetzen Sie die Ansicht
[customView addSubview:[FaceViewController view]];
hat den trick.