Qu'est-ce que le Propriétaire du Fichier (dans Interface builder)?
Je suis nouveau sur le Cacao et je ne comprends pas le concept de File's Owner
de un .plume fichier.
Ici est la façon dont je vois les choses :
-
Envisager un fichier
myNibFile.nib
fichier qui décrit comment une fenêtre ressemble. -
Maintenant, je veux me connecter une fenêtre réelle de cette .plume de fichier. Donc, j'ai créer une classe
myWindow
, qui est une sous-classe deNSWindowController
. Et, pour ce faire, connexion, j'ai changer leinit
méthode comme ceci:-(id)init { [super initWithWindowNibName:@"myNibFile"]; return self; }
Donc, je comprends que quand je crée une instance de myWindow
, le "système" va aller et de regarder la .plume de fichiers et de créer les objets.
Donc, mes question sont :
-
pourquoi dois-je préciser que la
File's Owner
de mon .plume fichier estmyWindow
? N'est-il pas redondant ? -
Je suppose que cela signifie que je n'ai pas vraiment compris ce que le
File's Owner
. Quel est-il ? Pourquoi ne la .plume fichier appartenir à quelque chose ? Ne peut-il pas être "quelque part" dans mon "application" et quand c'est nécessaire, le "système" va là-bas et de l'utiliser ?
Merci de m'aider à y voir plus clair dans ces nouveaux concepts !
Vous devez vous connecter pour publier un commentaire.
Deux points à garder à l'esprit:
loadNibNamed:
ouinitWithNibName:
.Donc, vous avez créé une fantaisie de vue avec beaucoup de boutons, des sous-vues etc . Si vous souhaitez modifier l'un de ces points de vue ou des objets en tout temps après le chargement de la plume du chargement de l'objet (généralement un point de vue ou de la fenêtre contrôleur) vous définissez des points de vente pour ces objets au propriétaire du fichier. C'est aussi simple que cela.
C'est la raison pourquoi, par défaut, tous les Contrôleurs de Vue de Fenêtre ou de Contrôleurs de loi que les propriétaires de fichiers, et aussi avoir une prise de courant à la fenêtre principale ou objet de vue dans le fichier nib: parce que euh, si vous êtes le contrôle de quelque chose que vous aurez certainement besoin d'un débouché à de sorte que vous pouvez envoyer des messages.
La raison pour laquelle il est appelé propriétaire du fichier et donné une place particulière, c'est parce que contrairement aux autres objets de la plume, le propriétaire du fichier est externe à la plume et n'est pas partie. En fait, il ne devient disponible que lorsque la plume est chargé. De sorte que le propriétaire du fichier est un stand-in ou un proxy de l'objet réel qui sera plus tard la charge de la plume.
Espère que vous avez compris. Je vais préciser un des points si vous le demandez.
loadNibNamed
, etc.) et de sorte que vous n'avez pas besoin du lien redondantFile's Owner
est vrai, mais alors : comment allez-vous faire pour connecter les points de vente de cet objet ? Vous répondez à ce point.La chose fondamentale à comprendre, c'est que l'Interface Builder vous permet de créer des objets qui sont automatiquement reliés les uns aux autres, sans aucun effort de la part de votre programme. Vous pouvez instancier toutes sortes d'objets, y compris des non-vue, et ils peuvent être liées entre elles; par exemple, vous pouvez créer une instance d'une vue de la table de source de données avec la vue elle-même, etc. Ce mécanisme est souvent utilisé pour créer une Application Délégué au sein de votre Menu Principal PLUME.
Cependant, puisque tout se fait via le drag&drop, il semble qu'il n'y a aucun moyen que vous pouvez établir une connexion entre la PLUME des objets et les objets qui existent déjà dans votre application, à une exception près.
Lorsque le code est le chargement de la PLUME de fichier, vous avez la possibilité de spécifier exactement un objet dont la PLUME considèrent comme les "Fichiers de Propriétaire". C'est l'espace réservé que vous voyez à l'intérieur de l'Interface Builder; car il peut représenter n'importe quel objet à l'intérieur de votre application, Interface Builder ne peut pas savoir quelles actions/points de vente sont disponibles sur elle. C'est pourquoi vous pouvez modifier la "classe" des Fichiers Propriétaire, dans l'onglet Attributs.
Fichiers Propriétaire ne constitue pas réellement une "propriété" et de "parentalité". Ce qu'il représente est "l'objet que chargé de cette PLUME".
initWithWindowNibName:@"myNibFile"
. Avec cette instruction, je créer un lien entre la POINTE et d'autres objets.Propriétaire du fichier est un espace réservé au bureau de l'IB, et donc tous les points de vente et des actions dans votre code sont "couplés" de l'IB, vous pouvez glisser pour connecter des trucs sur l'écran pour le code.
Propriétaire du fichier dans l'Interface du Générateur est alors qu'il connaît le type d'objet de la société mère. Ce est utilisé de deux manières. Tout d'abord, dans Interface Builder pour les programmes de l'IB sait ce que les prises et les actions sont disponibles pour vous connecter. Deuxièmement, il est utilisé par l'application du cadre pour savoir comment reconnecter des choses pour le reste de votre code une fois la plume fichier est chargé.