problème IBAction

HarloHarlo Membre

Il m'arrive un p'tit problème, j'ai créé un NSViewController avec son xib kivabien.

Je peux attribuer du texte à un label sans problème mais aucun IBAction ne fonctionne.

J'ai procédé de la même façon plusieurs fois, tout fonctionne mais depuis aujourd'hui dès que je tente d'en recréer y'a plus moyen que ça fonctionne correctement et je pige pas pourquoi O_o tout est bien linké comme il faut, j'ai tenté de supprimer/recréer, fait des clean build folder, supprimer le build folder à la main mais rien y fait, plus moyen de créer une window avec des actions qui fonctionnent...

Une idée ?
Plus ça va et plus j'ai l'impression qu'Xcode est complètement bug de partout... parfois ça fonctionne, parfois non alors que je procède exactement de la même façon :(

Réponses

  • HarloHarlo Membre

    Trouvé, bizarrerie... il faut déclarer le view controler et ensuite l'initialiser dans la méthode. Si on déclare et initialise directement les actions ne fonctionnent pas O_ô

    Ca, ça fonctionnera
    ConfirmDelete *confirm;

    • (void) bla {
      confirm = [[ConfirmDelete alloc] init]
      [confirm showWindow:self];
      }

    Ca, les actions ne répondront pas...

    • (void) bla {
      ConfirmDelete *confirm = [[ConfirmDelete alloc] init]
      [confirm showWindow:self];
      }

    Si quelqu'un a une explication du pourquoi je suis preneur.

  • LarmeLarme Membre
    Ce n’est pas clair mais je dirais qu’en dehors du scope, ça pose problème, tu n’as plus de référence vraiment dessus.
  • HarloHarlo Membre

    Ce qui est étonnant c'est que les paramètres:
    [self.window makeKeyAndOrderFront:nil];
    [self.window setLevel:NSStatusWindowLevel];
    [self close]

    ne fonctionne pas alors qu'une autre window chargé de façon identique à 100% ça passe...
    c'est vraiment tordu.

  • klogklog Membre

    Les morceaux de code et explications que tu donnes sont (à mon sens) trop courts et décontextualisés pour que l'on puisse se faire une idée.

Connectez-vous ou Inscrivez-vous pour répondre.