Was ist der Eigentümer der Datei (im Builder für Benutzeroberfläche)?
Ich bin neu in Cocoa, und ich verstehe nicht das Konzept der File's Owner
einer .nib-Datei.
Hier ist der Weg, ich würde Dinge sehen :
-
Nehmen Sie eine Datei
myNibFile.nib
- Datei, die beschreibt, wie ein Fenster aussieht. -
Nun, ich möchte eine Verbindung zu einem eigentlichen Fenster .nib-Datei. Also, ich erstelle eine Klasse
myWindow
welche eine Unterklasse vonNSWindowController
. Und, um dies zu tun Verbindung, ändere ich dieinit
Methode wie diese:-(id)init { [super initWithWindowNibName:@"myNibFile"]; return self; }
So, ich verstehe, dass wenn ich erstellen Sie eine Instanz der myWindow
ist, das "system" gehen und Blick auf die .nib-Datei und erstellen Sie das adäquate Objekt.
So, meine Frage :
-
warum muss ich angeben, dass die
File's Owner
meiner .nib-Datei istmyWindow
? Ist es nicht redundant ? -
Ich glaube, es bedeutet, dass ich nicht wirklich verstanden, was die
File's Owner
. Was ist es ? Warum funktioniert der .nib-Datei haben, gehören zu etwas ? Kann es nicht "irgendwo" meine "Anwendung" und wenn es nötig ist, das "system" geht es und verwenden Sie es ?
Dank, hilft mir, klarer zu sehen in dieser neuen Konzepte !
InformationsquelleAutor der Frage Colas | 2013-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Punkte zu beachten:
loadNibNamed:
oderinitWithNibName:
.Also man erstellt sich einen schicken Blick mit vielen Tasten, Untersichten usw. . Wenn Sie möchten, ändern Sie diese Ansichten /Objekte jederzeit nach dem laden der nib-VON der laden-Objekt (in der Regel ein view-oder controller-Fenster) setzen Sie Steckdosen für diese Objekte in der Datei-Besitzer. So einfach ist das.
Dies ist der Grund, warum standardmäßig werden alle View-Controller-oder Controller-Fenster fungieren als Datei-Besitzer, und haben auch eine Steckdose, um das main window oder view-Objekt in der nib-Datei: weil duh, wenn man die Steuerung etwas, das Sie brauchen definitiv zu haben, eine Steckdose, so dass Sie Nachrichten senden können.
Der Grund, warum es die genannte Datei-Besitzer und ein spezieller Platz eingeräumt, da Sie, anders als die anderen Objekte des nib), die der Besitzer der Datei ist extern an der Spitze und ist nicht Teil davon. In der Tat, es wird nur verfügbar, wenn die Feder geladen wird. Also der Besitzer der Datei ist ein stand-in oder Stellvertreter für das eigentliche Objekt, das später laden der nib.
Hoffe, Sie haben verstanden. Ich werde klären, einer der Punkte, wenn Sie Fragen.
InformationsquelleAutor der Antwort Samhan Salahuddin
Die grundlegende Sache zu verstehen ist, dass der Interface Builder können Sie Objekte erstellen, die automatisch miteinander verbunden, ohne Anstrengung auf dem Teil des Programms. Sie instanziieren können alle Arten von Objekten, einschließlich nicht-Blick, und Sie können miteinander verknüpft werden; zum Beispiel, könnten Sie der Instanz einer table view data source-zusammen mit der Ansicht selbst, etc. Dieser Mechanismus wird Häufig verwendet, um eine Anwendung erstellen, die Delegierte in Ihrem Hauptmenü NIB.
Jedoch, da es alles geschieht per drag&drop, es scheint, gibt es keine Möglichkeit, dass Sie bilden eine Verbindung zwischen der Feder-Objekte und der Objekte, die bereits existieren in Ihrem Antrag, mit einer Ausnahme.
Wenn der code das laden der NIB-Datei, haben Sie die option, um anzugeben, genau eine Objekt, das die Feder wird als der "Files Owner". Dies ist der Platzhalter, den Sie von innen besichtigen Interface Builder; da es für jede beliebige Objekt in Ihrer Anwendung, Interface Builder nicht wissen kann, welche Aktionen/outlets verfügbar sind. Dies ist, warum Sie ändern können, die "Klasse" der Dateien, die Eigentümer, die in der Registerkarte "Attribute".
Dateien-Besitzer nicht wirklich darstellen "Eigentum" oder "elternschaft". Was es darstellt, ist "das Objekt, geladen wird dieser Feder".
InformationsquelleAutor der Antwort Jeff Laing
File ' s Owner ist ein Platzhalter in IB, so dass alle die outlets und Aktionen in Ihrem code "linkable" in IB, können Sie Ctrl-drag zu verbinden, Dinge auf dem Bildschirm, um den code.
InformationsquelleAutor der Antwort bbaassssiiee
File ' s Owner im Interface Builder ist, so dass Sie weiß, dass das Objekt den Typ des übergeordneten Elements. Dies ist auf zwei Arten verwendet. Erstens, die im Interface Builder, damit IB weiß, was outlets und Aktionen sind verfügbar, um Sie zu verbinden. Zweitens ist es von der Anwendung verwendete framework zu wissen, wie sich zu verbinden, Dinge auf den rest von deinem code, wenn Sie die nib-Datei geladen wird.
InformationsquelleAutor der Antwort iain