Fenêtres "collantes" et child windows
Chacha
Membre
Salut,
Je suis en train de finaliser une nouvelle appli formidable, et il y a quelques petits détails de fignolage d'interface que je n'arrive pas à implémenter.
Notamment, je n'arrive pas à faire des fenêtre "collantes". Je m'explique ; le mieux est d'aller voir dans OmniGraffle : il y a une tripotée d'inspecteurs, qui ont la propriété très pratique de coller les uns aux autres quand on les approche assez près. Ainsi on peut les déplacer en bloc.
Pour simuler un tel comportement, j'ai essayé d'utiliser des "child windows". Quand une fenêtre est la "child" de son "parent", bouger le "parent" fait bouger la "child" en même temps (et pas l'inverse). Idéal, non ? (méthodes addChildWindow...)
Malheureusement, j'ai constaté que cela semble limité à 3 niveaux de descendance.
Si A, B, C, D sont des fenêtres,
Si A est père de B qui est père de C qui est père de D,
et bien si on bouge A, B et C bougent, mais D reste immobile.
Donc il semble que les "child windows" soient inutilisables pour mon problème.
Auriez vous d'autres pistes ?
+
Chacha
Je suis en train de finaliser une nouvelle appli formidable, et il y a quelques petits détails de fignolage d'interface que je n'arrive pas à implémenter.
Notamment, je n'arrive pas à faire des fenêtre "collantes". Je m'explique ; le mieux est d'aller voir dans OmniGraffle : il y a une tripotée d'inspecteurs, qui ont la propriété très pratique de coller les uns aux autres quand on les approche assez près. Ainsi on peut les déplacer en bloc.
Pour simuler un tel comportement, j'ai essayé d'utiliser des "child windows". Quand une fenêtre est la "child" de son "parent", bouger le "parent" fait bouger la "child" en même temps (et pas l'inverse). Idéal, non ? (méthodes addChildWindow...)
Malheureusement, j'ai constaté que cela semble limité à 3 niveaux de descendance.
Si A, B, C, D sont des fenêtres,
Si A est père de B qui est père de C qui est père de D,
et bien si on bouge A, B et C bougent, mais D reste immobile.
Donc il semble que les "child windows" soient inutilisables pour mon problème.
Auriez vous d'autres pistes ?
+
Chacha
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sinon, tu peux toujours faire le travail toi-même en observant les mouvements de la fenêtre mère pour appliquer le mouvement idoine à sa ou ses fenêtres filles.
Cette observation se fait par le delegate windowDidMove: de NSWindows par exemple.
.
Moi aussi; j'en ai fait un rapport de bug
Et non, justement, le windowDidMove ne se déclenche qu'après la fin d'un mouvement; or, là , il faudrait détecter *pendant* le mouvement.
+
Chacha
Arf, j'aime bien faire à la mimine. ça risque d'être un peu noyé dans le OmniAppKit.
+
Chacha
J'en avais fait un bug report, et j'ai eu la réponse ce matin : c'est bien un bug, et ils bossent dessus.
+
Chacha
J'adore, parce qu'il y a un vrai retour.
J'ai presque une centaine de bug report, pas mal de duplicate, mais je sais qu'ils les lisent, au moins.
Comme je suis inscrit à l'ADC (gratuit) je peux poster sur le Bug Reporter :
https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa
+
Chacha