Comment faire pour changer l'aparence d'une fenetre metal/non metal ?

veve

Nouveau membre
6 Mars 2004
4
0
43
Comment faire pour changer l'aparence d'une fenetre metal/non metal dans le code?
(desolé si la question a étè posée je n'ai pas reussi à la trouver)
 

macmaniaque

Membre junior
9 Octobre 2003
70
1
35
Nantes
www.macstuce.fr.st
Dans le code je sais pas, mais tu peux le changer dans Interface builder, dans les infos de ta fenetre tu as une case a coché.
 

Eddy58

Membre confirmé
27 Décembre 2002
134
0
Visiter le site
Il faut initialiser la fenêtre avec le "styleMask" et les constantes voulues.

- (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag

Ici la constante est "NSTexturedBackgroundWindowMask"
Voir les autres constantes dans NSWindow...
 

veve

Nouveau membre
6 Mars 2004
4
0
43
mais ceci ne peut etre fait qu'au demarrage(initialisation de la fenetre) moi je voudrai pouvoir le faire a tout moment, par exemple en changeant un parametre dans les preference et que la modification s'aplique tout de suite.
Interface builder lui justement le fait encours d'execution en apuyant sur le bouton switch "Has texture".
 

la tortue

Membre confirmé
6 Novembre 2003
397
1
Interface Builder "simule" l'affichage de la fenêtre, il n'affiche pas la "vraie" fenêtre. A ma connaissance, ce que tu veux faire n'est pas possible...
 

Eddy58

Membre confirmé
27 Décembre 2002
134
0
Visiter le site
Le système ne permet pas de modifier dynamiquement ce paramètre. Il faut ruser.....par exemple pourquoi ne pas faire deux fichiers .nib de ta fenêtre ? L'un sans texturage, et l'autre avec. Ensuite tu permutes tes fichiers .nib selon ton choix.
 

veve

Nouveau membre
6 Mars 2004
4
0
43
et en utilisant une sous-classe (ou categorie) de NSWindow ? ou j'ajoute une methode pour modifier la variable responsable de l'apparence.
 

la tortue

Membre confirmé
6 Novembre 2003
397
1
Tu peux faire autant de sous-classes de NSWindow que tu veux, ça ne t'avancera pas plus, puisque tu ne pourras toujours pas changer le styleMask de la fenêtre qui est défini lors de l'initialisation...
 

veve

Nouveau membre
6 Mars 2004
4
0
43
Mais est qu'il n'y a aucun moyen de changer l'aspect de la fenetre une fois ouverte et affichée ?