Fond et textes

tabliertablier Membre
février 2019 modifié dans API AppKit #1

Obj-C, MacOS.
J'ai besoin de mettre un dessin comme fond d'une fenêtre. Pour cela pas de problème je crée une 'color' avec le dessin et j'utilise _window.backgroundColor J'obtiens ce que je souhaite. Maintenant, je souhaite placer des NXTextField sur ce fond. Là ça se complique car si mettre des NXTextField sur la fenêtre ne pose pas de problème, les placer exactement pour qu'après compilation ils soient aux bons endroits sur le fond est aléatoire! Y a t-il un moyen d'avoir la fenêtre avec son fond dans IB avant de placer les zones de texte? Ou faut-il procéder autrement ?

Réponses

  • Et en mettant, temporairement, une NSImageView dans ta fenêtre (de sorte qu'elle en couvre l'intégralité) ? Son image étant visible dans Interface Builder...

  • T'as un mockup de ce que tu veux faire ?
    Sinon désactiver auto-layout et placer toutes les vues en fixed.

  • Joanna CarterJoanna Carter Membre, Modérateur
    février 2019 modifié #4

    Pourquoi pas utiliser un NSImageView derrière les NSTextFields ? Tu prévois permettre le redimensionnement de la fenêtre ? Si oui, il faut utiliser l'autolayout avec les contraintes en pourcentage de la taille de l'image

  • Le coup du NSImageView doit marcher ! Pour l'instant j'ai commencé en dimension fixe sans autolayout.
    Je ne sais pas ce qu'est un mockup (moi y en a être normand exilé dans les Alpes) mais je crois comprendre qu'il faut que j'explique ce que je veux faire. A l'association ACONIT (www.aconit.org), nous avons une exposition qui se ballade de musée en université régulièrement (60 à 70 panneaux et du matériel informatique). Je travaille sur un panneau intitulé "Architecture de Von Neumann". Pour montrer au bureau ce que ça peut donner, je mets l'image prévue du panneau en fond et j'ajoute les boutons, le clavier et les afficheurs au premier plan pour faire fonctionner le tout comme sur le panneau réel qui lui fera 1,2m par 60 cm environ. Un début de prototype est ci-dessous.

Connectez-vous ou Inscrivez-vous pour répondre.