ImageView marque son territoire

02:57 modifié dans API AppKit #1
Bonsoir  :o

Voilà  j'ai juste un petit problème, je vous l'expose :
J'init une sous-classe de NSWindowController. Et juste après avoir initialisé cette sous-classe, je lui envoie "getInformations:_infos" (_infos = NSDictionary). Je peux aussi éditer, donc je renvoie encore getInformations:_infos à  cette sous-classe, sauf que celle-ci a déjà  été initialisée.

Dans cette méthode :
<br />&nbsp; &nbsp; &nbsp; // set icon<br />	NSString*	_iconTitle = [NSString stringWithFormat:@&quot;%@empty&quot;,[[_informations objectForKey:@&quot;SkinName&quot;] lowercaseString]];<br />	[_trashImageView setImage:[NSImage imageNamed:_iconTitle]];<br />


Et voici ce qu'il ce passe si je change d'icône (je suis passé d'une grande à  une plus petite) - voir fichier joint.

On remarque nettement les contours de l'ancienne image, les ombres même !

Que faire  :why?:

[Fichier joint supprimé par l'administrateur]

Réponses

  • Eddy58Eddy58 Membre
    02:57 modifié #2
    Pour ma part, je me demande un peu ce que je regarde. ;)
    Il faudrait nous en dire plus sur ta fenêtre et le fonctionnement voulu. C'est une fenêtre BorderLess avec une NSImageView dedans ?
  • 02:57 modifié #3
    Oui c'est bien une window borderless. La fenêtre est créée à  chaque fois que j'init une nouvelle sous-classe de NSWindowController.
    Cette fenêtre contient une NSImageView et un textField (vide) en premier plan (pour pouvoir déplacer la fenêtre car j'ai remarqué que sinon ça marchait pas  :adios!:).
  • Eddy58Eddy58 Membre
    02:57 modifié #4
    dans 1143738058:

    La fenêtre est créée à  chaque fois que j'init une nouvelle sous-classe de NSWindowController.

    A quelles fins ? ???

    Sinon, as tu essayé de surcharger la méthode drawRect de ton NSImageView en faisant un remplissage avec la clear color ?
  • 02:57 modifié #5
    Bon je reviens sur le sujet car je suis maintenant sur une autre application et ça me refait le coup  :)beta:

    voici la fenêtre
    <br />- (id)initWithContentRect:(NSRect)contentRect <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; styleMask:(unsigned int)aStyle <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; backing:(NSBackingStoreType)bufferingType <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; defer:(BOOL)flag {<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; if (self = [super initWithContentRect:contentRect <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; styleMask:NSBorderlessWindowMask <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; backing:NSBackingStoreBuffered <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  defer:NO]) {<br />&nbsp; &nbsp; &nbsp; &nbsp; [self setLevel: NSStatusWindowLevel];<br />&nbsp; &nbsp; &nbsp; &nbsp; [self setBackgroundColor: [NSColor clearColor]];<br />&nbsp; &nbsp; &nbsp; &nbsp; [self setAlphaValue:1.0];<br />&nbsp; &nbsp; &nbsp; &nbsp; [self setOpaque:NO];<br />&nbsp; &nbsp; &nbsp; &nbsp; [self setHasShadow:YES];<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; return self;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; return nil;<br />}<br />
    


    Et donc lorsque j'applique un truc du genre [myButton setHidden:YES], j'ai le bouton qui disparaà®t à  .. 90% on va dire (voir screenshot). Mes boutons sont contenus dans une NSView (j'ai essayé ce que Eddy propose mais ça ne marche pas).

    Je vous laisse tester l'application



    [Fichier joint supprimé par l'administrateur]
  • Eddy58Eddy58 Membre
    02:57 modifié #6
    En mettant ton dock en "discreet position" puis en le faisant revenir ensuite, le défaut disparait de lui-même. Peut-être qu'en forçant le rafraichissement de la superview après le setHidden cela règlera le problème ? :o

    [tt]
    [myButton setHidden:YES];
    [[myButton superview] display];
    [/tt]
  • 02:57 modifié #7
    Même pas !  ???

    Note la construction :
    J'ai une fenêtre qui contient une NSBox.
    J'utilise [box setContentView:discreetView] pour avoir la petite "fleche" discrète, et setContentView:mainView pour avoir la vue avec les app, dossiers, ....
    Mais je ne pense pas que ça soit juste parce que je remplace le contenu de la NSBox car si tu cliques sur la flèche suivante, et que tu reviens sur la précédente, il n'y aura pas de problèmes >_< mais si je re-clique sur la fleche suivante, ça le refait...
    :p

    Voici le code source, mais je pense pas que ça servira à  grand chose  ;)

    [Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.