Appeler la même méthode

muqaddarmuqaddar Administrateur
20:39 modifié dans API AppKit #1
Salut les gars,

Voilà , j'ai deux classes qui appellent des méthodes -(void). Or ces méthodes sont les mêmes dans les deux classes, elles sont copiées-collées.

Je voudrais juste les laisser dans mon controller. Mais je dois pouvoir les appeller depuis l'autre classe qui est celle qui définit ma barre d'outils et mes boutons.

Par ex : [item setAction:@selector(addGroup)];

Or, maintenant, il faudrait que ça pointe vers addGroup du controller, et non de la classe dans laquelle il se trouve.

Quelle est la méthode la plus simple ? :why?:

Réponses

  • 20:39 modifié #2
    Tout simplement ça:
    [tt][item setTarget:yourController];[/tt]
  • muqaddarmuqaddar Administrateur
    juin 2005 modifié #3
    Merci Mr Renaud.

    Je me prends une "parse error before AppController":

    Mon code :

        if ([itemIdentifier isEqualToString:@AddGroupItem]) {
    [item setLabel:@Add Group];
    [item setPaletteLabel:[item label]];
    [item setImage:[NSImage imageNamed:@AddGroupItem]];
    [item setTarget: AppController];
    [item setAction:@selector(addGroup)];
        }

    (je suis dune classe category qui dépend de AppController)
  • 20:39 modifié #4
    Si AppController est une classe, c'est normal que ça n'aille pas. Il faut une instance comme argument. Si ton code est dans le AppController, tu mets self sinon, un outlet ou une sharedInstance.
  • muqaddarmuqaddar Administrateur
    20:39 modifié #5
    Oui, mon code est dans le AppController... Si je mets self, ça bronche pas, sauf que mon icone n'est pas active comme si il ne voyait pas la méthode... :(
  • muqaddarmuqaddar Administrateur
    20:39 modifié #6
    J'ai trouvé. J'appelais des IBActions et non des void, mais sans les ":" à  la fin de l'appel...

    merci !
  • 20:39 modifié #7
    [item setAction:@selector(monAction:)]
    

    d'après ce que j'avais vu tu avais oublié le ":"  :p
    - (void)monAction:(id)sender{<br />}
    

    et le tour est joué  <3
  • muqaddarmuqaddar Administrateur
    20:39 modifié #8
    Grilled !  >:D <3
  • 20:39 modifié #9
    dans 1118387946:

    Grilled !  >:D <3 <br />

    Hein ?  :(
  • muqaddarmuqaddar Administrateur
    20:39 modifié #10
    Bein j'avais trouvé... juste au dessus de ton post... ;)
  • 20:39 modifié #11
    Ha zut ! Dès que j'ai vu ton premier post j'ai tt de suite su que je pouvais répondre alors j'ai pas lu la suite :p :p
Connectez-vous ou Inscrivez-vous pour répondre.