Copier une classe vers une sous-classe
Chacha
Membre
Salut,
J'ai un souci de langage objet; je me demande si je me mélange les pinceaux, ou pas.
Voici :
-J'ai dérivé la classe NSButtonCell en MyButtonCell, qui contient des données en plus (donc une catégorie ne convient pas).
-Je voudrais remplacer la NSButtonCell d'un bouton donné par une MyButtonCell. Sauf que dans InterfaceBuilder, je règle différents paramètres sur la Cell (border, transparent...) que j'aimerais voir automatiquement repris par mon nouvel objet MyButtonCell. Donc quand je crée mon objet MyButtonCell, j'aimerais que sa "partie NSButtonCell" soit reprise de la ButtonCell initiale.
-je n'ai pas envie de me taper à la main tous les appels aux méthodes setValue setTransparent, setImage...
-s'il y avait un initWithCell:, je n'aurais pas besoin de le faire à la main, mais il n'y en a pas.
-en utilisant copy:, y'a-t-il moyen de créer un objet MyButtonCell qui soit "au moins" la copie d'un objet NSButtonCell donné ? Je pense que non.
Voilà , j'espère que c'était compréhensible.
+
Chacha
J'ai un souci de langage objet; je me demande si je me mélange les pinceaux, ou pas.
Voici :
-J'ai dérivé la classe NSButtonCell en MyButtonCell, qui contient des données en plus (donc une catégorie ne convient pas).
-Je voudrais remplacer la NSButtonCell d'un bouton donné par une MyButtonCell. Sauf que dans InterfaceBuilder, je règle différents paramètres sur la Cell (border, transparent...) que j'aimerais voir automatiquement repris par mon nouvel objet MyButtonCell. Donc quand je crée mon objet MyButtonCell, j'aimerais que sa "partie NSButtonCell" soit reprise de la ButtonCell initiale.
-je n'ai pas envie de me taper à la main tous les appels aux méthodes setValue setTransparent, setImage...
-s'il y avait un initWithCell:, je n'aurais pas besoin de le faire à la main, mais il n'y en a pas.
-en utilisant copy:, y'a-t-il moyen de créer un objet MyButtonCell qui soit "au moins" la copie d'un objet NSButtonCell donné ? Je pense que non.
Voilà , j'espère que c'était compréhensible.
+
Chacha
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Par contre, tu peux toujours essayer ça (sous réserve) :
Créer une sous-classe de NSButton (MyButton par exemple) et surcharger la méthode initWithFrame: :
[tt]
- (id)initWithFrame:(NSRect)frameRect
{
NSCell newCell;
self=[super initWithFrame:frameRect];
newCell=[[MyButtonCell alloc] init];
[self setCell:newCell];
[newCell release];
return self;
}
[/tt]
Ensuite, tu peux utiliser les boutons dans iB (en mettant la custom class à MyButton). Logiquement, tous les attributs de l'inspecteur devraient se reporter à MyButtonCell.
.
Non, c'est déjà ce que je fais mais ça ne marche pas (à une différence près, c'est que je suis dans initWithCoder)
+
Chacha
[tt]+(Class)cellClass {
return [MyButtonCell class];
}[/tt]
Et dans IB, tu n'as qu'à faire un Custom Class pour ces boutons.