Objects cocoa dans une fenêtre "resizable"

meallmeall Membre
14:42 modifié dans Xcode et Developer Tools #1
Bonjour,

Une autre petite question. Je construis des fenêtres dans IB avec différents types d'objets, NSButton, Textfield, NSImageViw, NSTExtField, etc. J'aimerais laisser la fenêtre principale resizable, cependant, mon problème est que l'affichage ne correspond pas tellement à ce que je voudrais lorsque je change la dimension de la fenêtre.

Les boutons et autres objects se déplace de manière cahotique. Par exemple, certain bouton, je voudrais les avoir fixe en haut de la fenêtre, mais ils bougent. Les objects que je voudais voir agrandis le fond, mais pas de la bonne façcon...

J'ai joué beaucoup avec les paramètres de l'onglet size du Inspector, mais rien à faire, tout réagi de la mauvaise manière. Quelqu'un pourrait me suggérer une lecture ou quelqu'aide à ce sujet?

Réponses

  • ClicCoolClicCool Membre
    mai 2004 modifié #2
    Dans le panneau size en effet se trouve ta solution† ;D
    En particulier dans le cadre dénommé "autosizing"
    Tu y as:
    1 un "carré" central représentant l'objet sélectionné
    2 un cadre autour représentant la superView (fenêtre dans ton cas semble-t-il).
    3 une ligne verticale et une ligne horizontale
    Si tu clique sur les portions de ces lignes, elles peuvent se transformer en "ressort"
    - en ressort = variable en s'adaptant aux dimensions
    - Droite = taille fixe quelque-soient les redimensionnements de la superView.
    Dans ton cas il semble qu'il faille cliquer (pour mettre en ressort) les extrémités externes à tes objetx :
    - inférieure de la ligne verticale
    - de droite de la ligne horizontale
    soit les portions entre tes objets et les bords de la fenêtre.

    Si tu transforme en ressort une ligne interne à ton objet: celui ci garde la même origine mais grandi dans alors cette dimension en cas de redimensionnement de la superView (fenêtre ici).

    Dis moi si la réponse t'as aidé

    @+
    ClicCool
  • meallmeall Membre
    14:42 modifié #3
    Merci, c'est en effet ce qui me manquait... J'ai aussi découvert que si on veut qu'un objet s'agrandisse sur la droite proportionellement. mais garde sa proportion sur la hauteur, il faut cocher les ressorts intérieur droite/gauche et seulement le ressort du dessous de l'objet (pas celui de droite, sinon ça le rend moins large que les autres).

    Mon problème était que je faisais des modif sur la partie frame/layout. Est-ce que tu a une traite d'idée d'à quoi ça peut bien servir, car peut-importe ce que je fais, rien ne semble différent. Comme par exemple le bouton lock ne lock pas grand chose en ce qui me concerne!  Et c'est quoi d'ailleur les 2 onglets Frame versus layout?

    Merci encore
  • ClicCoolClicCool Membre
    14:42 modifié #4
    La chekBox "Lock" du panneau Size sous IB sert uniquement à éviter une modification indésirable de la position/Dimension de ton objet sous IB (celà évite de déplacer par erreur tout un bel agencement que tu as mis des heures à paufiner sous I.B.† :D ) Mais n'a aucune influence sur la "vie" de ton objet dans ton programme.
    La Frame est la position de ton objet (tout entier) dans sa superVue, pour certains objets le Layout est un peu plus petit et correspond en général à la partie visible et fonctionnelle de l'objet.
    ClicCool
  • meallmeall Membre
    14:42 modifié #5
    Merci des eclaicicements!
  • nucleusnucleus Membre
    14:42 modifié #6
    Un truc que je trouve pratique aussi: agencer ses elements graphiques dans la taille minimum de la fenêtre..
    Autrement tu risques des petits problèmes esthétiques lorsque tu réduit ta fenêtre..
  • ClicCoolClicCool Membre
    14:42 modifié #7
    ça c'est sur !,
    faut toujours penser à définir la taille minimale des fenêtres redimensionables (par le panneau size des infos de la fenêre) et parfois aussi la taille maximale ;)
Connectez-vous ou Inscrivez-vous pour répondre.