![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Nouveau Membre Groupe : Membres Messages : 27 Inscrit : 15 Sep 2001 Lieu : Lausanne, Suisse Membre no 805 ![]() |
Hello !!!
J'ai un petit problème avec les NSCell ![]() En fait j'ai une NSView qui affiche le contenu d'un jeu et j'aimerais afficher des NSButton (comme dans interface builder) dans cette view. Dans le fichier de la view, j'ai implémenté la NSCell de cette façon (je sais pas si c'est la bonne manière, mais ça marche, mon bouton s'affiche où je veut dans ma view): CODE - (void)drawMainMenuIn:(NSRect)r
{ NSButton *startGameButton = [[NSButton alloc] initWithFrame:r]; NSButtonCell *buttonCell = [[NSButtonCell alloc] init]; displayCell.size.width = 200; displayCell.size.height = 50; displayCell.origin.x = r.size.width / 2 - 100; displayCell.origin.y = 230; [buttonCell setAction:@selector(startGame)]; [buttonCell setTarget:self]; [startGameButton setCell:buttonCell]; [startGameButton setTitle:@"Nouvelle partie"]; [buttonCell drawWithFrame:displayCell inView:self]; [startGameButton release]; [buttonCell release]; } Mais maintenant comment je fais pour savoir si ce bouton est clické (et exécuter une action?), Programming for Mac OS X et Learning Cocoa sont tout sauf clair sur le sujet je bloque là dessus depuis un moment, si vous avez une idée ![]() Mon message n'est sans doute pas clair, n'hésitez pas a demander plus d'infos ![]() J'espère que quelqu'un pourra m'aider @+ Number One |
|
|
![]() |
![]()
Message
#2
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 351 Inscrit : 17 May 2001 Lieu : Paris Membre no 256 ![]() |
QUOTE Désolé pour ces questions de débutant, mais c'est ma première "vraie" application et j'ai de la peine a comprendre les NSCell… même si je comprends les NSView…
NSButton est une spécialisation de la classe NSView, or chaque instance de type NSView est assez lourde à créer car en gros une NSVew est matérialisée par une fenêtre (sans bords) pour le gestionnaire de fenêtres.. S'il n'y a pas beaucoup de NSButton ce n'est pas un problème, mais si par exemple tu veux faire une calculatrice avancée tu va te rendre compte que c'est vraiment pas une bonne idée d'utiliser NSButton pour faire chaque bouton: ca va ramer. Mais pour ne pas perdre l'interet d'une classe qui sait gérer et afficher un bouton, et pour pouvoir réutiliser le code sans copier-coller (la pire des réutilisations en objet), tu as NSButtonView qui encapsule la logique spécifique à un bouton mais qui ne crée pas de fenêtre. Ainsi pour ta calculatrice tu n'as besoin de créer qu'une seule vue (par exemple NSMatrix) qui contient plusieurs de NSButtonCell La classe NSButton est donc une fenêtre avec un NSButtonCell. Le NSButton s'occupe de gérer l'espace sur l'écran, le NSButtonCell s'occupe du reste Si tu regarde dans la doc, tu verra beaucoup de couple View/Cell qui fonctionnent selon le même principe.. Certaines NSView sont conçues pour regrouper plusieurs cells et permettre un affichage et une interaction complexe dans une seule NSView, comme la NSTableView |
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 09:48 |