Coordonnées fenêtre
Rocou
Membre
Bonjour,
Cela fait deux heures que je cherche comment obtenir les coordonnées d'une fenêtre
Je voudrais positionner une fenêtre à son ouverture en fonction d'une autre, déjà affichée.
Cela fait deux heures que je cherche comment obtenir les coordonnées d'une fenêtre
Je voudrais positionner une fenêtre à son ouverture en fonction d'une autre, déjà affichée.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et le fameux calcul de la taille du frame en fonction de la taille de la content View :
Tu me rassures
Honnêtement, je n'ai rien compris. Je ne vois pas le lien avec ma fenêtre ni comment extraire les coordonnées x et y de celle-ci.
Mais c'est le rectangle avec la barre de titre comprise... Les fonctions "frameRectForContentRect" et "contentRectForFrameRect" servent à faire les conversions avec / sans barre de titre.
Je ne vois pas comment m'en servir.
J'ai un Outlet
IBOutlet NSWindow *maFenetre;
Que dois-je faire avec?
J'ai commencé comme suit mais qu'est que le windowContent?
Je t'ai joint une image pour que tu puisses comprendre un peu plus le principe de la contentView.
Comme te l'a expliqué Schlum, la méthode "frameRectForContentRect" te permet de retourner la Frame de la fenêtre à partir de son contentView. Au départ on aurait tendance à dire que la fenêtre devra faire la taille de la contentView, mais non ! Il y a la barre de titre qui doit bien prendre 20px de hauteur voir plus, et puis si ta fenêtre a une barre d'outils, il faut la compter aussi.. bref, tu t'imagines mettre des conditions du genre "si (barreDoutils == YES) alors ajouter 80px de hauteur" ?
Voilà à quoi sert frameRectForContentRect en gros ça prend la taille de la contentView (voir schéma) et retourne la frame de la fenêtre en comprenant tout ce qui est externe à cette contentView, à savoir la barre de titre, une toolbar, voir plus.
Mais comme Schlum vient de dire, si tu veux avoir le rectangle de ta fenêtre il te suffit d'utiliser [myWindow frame];
J'obtiens systématiquement 0 et 0 comme coordonnées.
Par contre, ce code fonctionne, ouf!
Schlum réponds toujours avec patience et gentillesse mais il oublie qu'il a affaire à un "grand débutant"
[myWindow frame] c'est quelque chose qui me cause mais 'frame' tout seul, je ne voyais pas du tout où il voulait en venir.
Mais ça s'éclaire peu à peu.
Une recherche de frame t'aurait donné la liste des classes l'utilisant, dont NSWindow
J'ai essayé tout au début en suivant ce conseil que tu donnais à d'autre mais je ne voyais pas l'intérêt de ce truc vieillot par rapport à la doc d'Apple. Je vais me repencher dessus, j'ai du passer à côté de quelque chose
A partir de xcode>documentation, ou simplement à partir du site Apple developer :
Il y a vraiment un souci de lecture de la doc.