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:

  1. In Xcode 4, ich erstelle einen neuen, leeren Dokument-basierte Cocoa-Anwendung
  2. 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 ist FaceViewController für Testzwecke sollte es nur text anzeigen für jetzt.
  3. 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.
  4. In MyDocument.xib ich auch hinzufügen, ein Custom 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 als NSView?
  • 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.

InformationsquelleAutor Besi | 2011-07-11
Schreibe einen Kommentar