Un bouton qui disparait dans une NSScrollView

bxdieselbxdiesel Membre
06:37 modifié dans API AppKit #1
D'abord bonjour à  tous et félicitations pour ce forum qui est d'une grande aide pour un débutant en Cocoa comme moi...

Je voudrais faire un bandeau avec des boutons et ayant comme fond une image.
Pour ça, j'ai mis un NSButton dans une NSImageView à  laquelle j'ai affecté une image png. Une fois l'application lancée, tout est normal.

Ensuite, j'ai inclus ces deux éléments dans une NSScrollView (Layout->Embed...). Dans IB, tout parait normal mais dans l'application, le bouton a disparu.
Je joins un petit programme illustrant ça. Merci de me dire où ça coince !

Réponses

  • NoNo Membre
    06:37 modifié #2
    Quand j'examine ton xib, je vois de le bouton et l'image sont 2 vues soeurs dont l'une se superpose à  l'autre.
    Or, cela n'est pas viable car cocoa quand il dessine des NSViews qui se chevauchent ne respecte aucun ordre.
    Dans le cas de la NSScrollView, le système de dessin dessine d'abord le NSButton puis enfin la NSImage, ce qui recouvre le premier.
    Pour preuve, dans la scrollView, diminue de moitié la taille de la NSImageView afin de laisser apparaà®tre une moitié de bouton. Tu verra qu'il est coupé à  l'exécution du programme.

    La solution est d'insérer le NSButton dans la NSImageView (en tant que subview), mais cela ne peut pas se faire dans IB.
  • bxdieselbxdiesel Membre
    06:37 modifié #3
    Bon, j'ai créé une classe MyImageView qui hérite de NSImageView.
    Dans IB, j'ai inclus (embed) le NSButton dans une CustomView que j'ai déclaré comme étant une MyImageView.
    Et j'ai inclus celle-ci dans une NSScrollView.
    Les vues ne sont plus soeurs et ça marche.  ;)

    No, merci pour le coup de main !
Connectez-vous ou Inscrivez-vous pour répondre.