Afficher une NSView au premier plan
Fred20
Membre
Bonjour
Mon appli affiche 4 NSView pour l'affichage de graphiques. Lorsque je clique sur l'une d'elles, elle se déplace au centre de l'écran pour faire différentes saisies. Cependant, je n'arrive pas à placer la NSView qui vient de se déplacer au premier plan. Pourtant, sur iOS, il y a "bringToFront" qui était parfait mais je ne retrouve pas l'équivalent sur OSX et donc je n'arrive pas non plus à le faire via d'autres principes. Du coup, comment mettre au premier plan une NSView ?
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour,
Vue sur StackOverFlow:
Génial, merci
Je ne serais jamais aller chercher dans cette direction
http://stackoverflow.com/questions/2872840/how-do-i-make-an-nsview-move-to-the-front-of-all-nsviews
Avec ce code:
On doit pouvoir remplacer les deux méthodes remove/add par :
exchangeObjectAtIndex:withObjectAtIndex:
C'est vrai... sauf à priori si tu utilises ARC (y'a bien ARC de dispo sous OSX aussi, non ?)
Note que je pense que removeFromSuperview est inutile : quand on ajoute une UIView à une superview, si la UIView était déjà dans une hiérarchie de vue elle va en être retirée avant d'être rajoutée en subview à la nouvelle, car elle ne peux pas être subview de 2 vues parentes différentes.
Et du coup même si c'est la même superview qu'on utilise là car le but est juste de la repositionner au dessus des autres subviews, même dans ce cas je pense pas qu'il soit nécessaire d'appeler removeFromSuperview avant. Le code interne de addSubview:positionned:relativeTo: doit déjà le faire tout seul, et en plus gérer ces questions de retain/release pour éviter les risques évoqués ici.