2011-07-14 3 views
1

Actuellement, j'ai un NSStatusItem qui, lorsqu'on clique dessus, affiche une vue personnalisée en dessous. La vue contient des champs d'information et de texte. Ce dont j'ai besoin, c'est d'une vue personnalisée séparée pour fusionner avec la première et apparaître en dessous, comme dans plus bas de l'écran, pas sur le dessus ou derrière la vue originale. Cela doit être une vue distincte car il existe plusieurs vues personnalisées qui seront ajoutées en fonction de ce que l'utilisateur fait dans la première vue. J'aimerais pouvoir ajouter ou supprimer chacun de ces éléments sans affecter les autres. J'ai parcouru la documentation d'Apple, mais je n'ai rien trouvé à propos de mettre une vue personnalisée à l'intérieur d'une autre par programmation.Cocoa Fusion des vues personnalisées

Répondre

1

NSView dispose d'une méthode addSubview:positioned:relativeTo: que vous pouvez utiliser pour ajouter et ordonner l'affichage des vues au-dessus ou au-dessous des autres. Utilisez superview: pour accéder à cette méthode sur un conteneur à partir de l'une de ses sous-vues.

Edit:

Essayez d'ajouter les deux points de vue à un NSSplitView avec un diviseur caché. Pour masquer le diviseur, sous-classez NSSplitView et remplacez la méthode dividerThickness: pour renvoyer 0;

+0

Cela fonctionne presque, mais "positionné" a seulement NSWindowAbove ou Below, qui place la vue sur le dessus, ou derrière ma vue, pas littéralement au-dessous. Je veux une vue en dessous de l'autre. – Elbimio

+0

Oh, donc c'est la position y, pas la position z que vous voulez changer? – weltraumpirat

+0

Exactement, désolé "ci-dessous" semble inapproprié, je vais le modifier. – Elbimio

Questions connexes