IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> inséré image en arrière plan d'un projet Interface Builder ?
Options
Xiupe
posté 25 Jun 2002, 23:47
Message #1


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 451
Inscrit : 6 Jan 2002
Membre no 1 759



SAlut à tous !

je débute en programmation Cocoa, et j'aurais voulu savoir comment on peu placer une image en arrière plan (de tel manière kel soit derrière tous les bouton, champs de texte, et autres...) dans un projet Interface Builder... J'ai beau essayé de chercher, je ne trouve pas :'(

À la rigueur s'il faut un bout de code spécifique ou autre pour inséré une image, ça serais bien sympa si vous pouviez me le poster tongue.gif

Merci à vous ! biggrin.gif


--------------------
Xiupe.

- MBA 13" 2012
- iPhone 4S, iPad 1 & 2
Go to the top of the page
 
+Quote Post
Bru
posté 6 Sep 2002, 14:41
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 516
Inscrit : 7 Oct 2001
Membre no 962



Il n'y a pas (à ma connaissance) de moyen simple pour insérer une image en arrière plan d'une fenetre dans IB.

Voici la méthode que j'utilise pour le faire :
dans IB je dépose une CustomView dans ma fenetre puis je la retaille aux dimensions de cette fenetre. Ensuite je place cette CustomView en arrière plan (menu LAYOUT, article SEND TO BACK).

Après, je créé une subclass à ma classe NSView que je nomme (par exemple) FondDeFenetre.

Dans la fenetre Infos de ma CustomView, dans le popup Custom Class, je clique sur ma nouvelle classe FondDeFenetre.

Maintenant, dans PB, il va falloir implémenter le code qui permettra de dessiner l'image dans la custom view FondDeFenetre. En fait, FondDeFenetre est une sous classe de NSView, donc elle hérite de toutes les caractéristiques d'une NSView à laquelle je vais rajouter 2 fonctionnalités :
1. charger en mémoire une image.
2. afficher cette image dans la custom view.

Pour faire ceci, il suffit d'implémenter (on dit aussi surcharger) 2 méthodes à FondDeFenetre :
- (id)initWithFrame:(NSRect)frameRect : cette méthode est utilisée pour créer la custom view. C'est ici qu'il faudra implémenter le code de chargement de l'image.
- (void)drawRect:(NSRect)rect : cette méthode est appelée à chaque fois qu'il faut dessiner la custom view. Ici on va mettre le code d'affichage de l'image.

Pour créer la sous classe dans PB, il faut aller dans menu File article New File, puis dans la liste, choisir Objective-C class puis cliqué sur Next. Ensuite dans le champ File Name, il faut taper le nom de la sous classe, donc FondDeFenetre (vérifier que "also create "untitled.h" est coché). 2 nouveaux fichiers (FondDeFenetre.h et FondDeFenetre.m) vont se mettre dans Groups et Files. Il suffit de les déplacer pour les mettres dans le dossier Classes.

Voici le contenu des fichiers :

Pour FondDeFenetre.h :
#import <Cocoa/Cocoa.h>
@class NSImage;
@interface FondDeFenetre : NSView
{ NSImage *ImageDeFond;
}
- (id)initWithFrame:(NSRect)frameRect;
- (void)drawRect:(NSRect)rect;
@end

Et pour FondDeFenetre.m :
#import FondDeFenetre.h"
@implementation FondDeFenetre
- (id)initWithFrame:(NSRect)frameRect
{ ImageDeFond=[NSImage imageNamed:@"ImageDeFond"];
return [super initWithFrame:frameRect];
}
- (void)drawRect:(NSRect)rect
{ [super drawRect:rect];
[ImageDeFond compositeToPoint:NSZeroPoint operation:NSCompositeSourceOver];
}
@end

L'image doit être dans un format reconnu par le système. Le format TIFF est idéal.
Maintenant, il ne reste qu'à déposer l'image dans le dossier Resources en la nommant ImageDeFond.tif (bien respecter l'extension pour que le format d'image soit reconnu).
Go to the top of the page
 
+Quote Post
Xiupe
posté 6 Sep 2002, 15:25
Message #3


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 451
Inscrit : 6 Jan 2002
Membre no 1 759



Mille merci Bru wink.gif

C'était pour faire l'interface de Carrafix 2 en fait, on cherchais un moyen simple de mettre une image en fond biggrin.gif

je crois que aussi que c'est la meilleure solution... merci beaucoup ! smile.gif


--------------------
Xiupe.

- MBA 13" 2012
- iPhone 4S, iPad 1 & 2
Go to the top of the page
 
+Quote Post
LeJeff
posté 6 Sep 2002, 16:39
Message #4


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 482
Inscrit : 5 Jul 2001
Lieu : Quelque part entre ici et là-bas
Membre no 466



Heu... Le NSImageView fait exactement ce que tu veux!!
Il suffit de le mettre en arrière plan et de désactiver la bordure dans les propriétés. Pour insérer l'image, il suffit de quelques "glisser-déposer". Tu peux même retailler l'image pour qu'elle s'adapte à la taille de la fenêtre.


--------------------
* iMac 24" Core2Duo 2,93GHz - 4Go - 640Go - Radeon 4850
* MacbookPro 13" 2,53HGz - 4Go
* Iphone 3G 16Go, iPod Classic 80Go
* NAS Synology DS-209 2x1To + Linksys WRT320N
Go to the top of the page
 
+Quote Post
Xiupe
posté 7 Sep 2002, 01:59
Message #5


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 451
Inscrit : 6 Jan 2002
Membre no 1 759



Ha je savais pas :-) merci du tuyau lejeff ! smile.gif


--------------------
Xiupe.

- MBA 13" 2012
- iPhone 4S, iPad 1 & 2
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 30th May 2024 - 21:08