boutons inactifs

macvelottemacvelotte Membre
08:11 modifié dans API AppKit #1
Bonjour,

Je fais une application qui m'indique l'heure solaire locale : heure légale lue sur le MAC, correction de décalage heure d'été, heure d'hiver, correction de l'équation du temps : pas de problème.
Mais, pour le correction de longitude, échec.

J'ai trois boutons liés à  trois "IBAction", pour donner la longitude du lieu : bouton "degrés", bouton "minutes", bouton "est/ouest". Connections faites, mais le debugger me donne le message suivant :  Could not connect the action liredegres: to target of class NSApplication (et même chose pour les deux autres).

javascript:void(0);


Réponses

  • CéroceCéroce Membre, Modérateur
    08:11 modifié #2
    Tu ne donnes pas assez d'indications.

    À quoi as-tu relié tes contrôles ?
  • macvelottemacvelotte Membre
    08:11 modifié #3
    les boutons (les différents "items" de ces boutons) ont été reliés à  l'instance définie dans Interface Builder (controle-clic) et dans le menu contextuel qui apparaà®t à  l'action correspondant au bouton. Je l'ai déjà  pratiqué sous Tiger, et ça marchait ; sous Leopard, jusqu'à  maintenant, c'est l'échec !
  • Philippe49Philippe49 Membre
    08:11 modifié #4
    dans 1233306534:

    les boutons (les différents "items" de ces boutons) ont été reliés à  l'instance définie dans Interface Builder (controle-clic) et dans le menu contextuel qui apparaà®t à  l'action correspondant au bouton. Je l'ai déjà  pratiqué sous Tiger, et ça marchait ; sous Leopard, jusqu'à  maintenant, c'est l'échec !


    à  l'instance de quoi  ?

    dans 1233303432:

    ... mais le debugger me donne le message suivant :  Could not connect the action liredegres: to target of class NSApplication (et même chose pour les deux autres).

    On  ici l'impression que tu as connecté tes boutons au proxy de l'application (Nommé Application dans le nib) et non à  une instance d'un AppController (un cube bleu rajouté à  ton nib)
  • macvelottemacvelotte Membre
    08:11 modifié #5
    à  Philippe49 : j'ai bien déposé le "cube bleu" dans le nib ... porte le même nom que les fichiers .h et .m de Xcode...

  • Philippe49Philippe49 Membre
    08:11 modifié #6
    dans 1233303432:

    ... mais le debugger me donne le message suivant :  Could not connect the action liredegres: to target of class NSApplication (et même chose pour les deux autres).


    Et les connections sont faites avec cette instance ou avec le proxy de l'application ?

    ou alors l'interface dans XCode est du type @interface AppController : NSApplication ?
    (à  priori on met @interface AppController : NSObject ou @interface AppController :NSViewController, ou assimilé ...)
  • CéroceCéroce Membre, Modérateur
    08:11 modifié #7
    dans 1233309003:

    j'ai bien déposé le "cube bleu" dans le nib ... porte le même nom que les fichiers .h et .m de Xcode...

    Et dans l'onglet Identity de l'inspecteur, tu as bien mis le bon type de classe ?
  • macvelottemacvelotte Membre
    08:11 modifié #8
    J'ai essayé avec un panneau de préférences (Programmation Cocoa,ch 12). Impossible de rendre les boutons actifs (ils sont alors sur le panneau Preferences).


  • Philippe49Philippe49 Membre
    08:11 modifié #9
    C'est toujours la même question qu'au début , ou le problème initial est résolu  ?

    Si oui, peux-tu préciser le contenu de la nouvelle situation ?
  • macvelottemacvelotte Membre
    08:11 modifié #10
    Je suis revenu à  mon projet initial (pas de panneau de préférences etc).

    Dans InterfaceBuilder, les connections paraissent bien faites : les ronds sont bien cochés dans le menu contextuel noir, et dans l'inspecteur, il en est de même. Mais il ne se passe rien !

    <j'avoue que je suis assez dérouté par LEOPARD et XCODE 3 !

  • Philippe49Philippe49 Membre
    08:11 modifié #11
    Si tu veux envoyer ton projet, on peut y jeter un oe“il ...
  • macvelottemacvelotte Membre
    08:11 modifié #12
    @Philippe49 : OK, mais sous quelle forme ?
  • Philippe49Philippe49 Membre
    08:11 modifié #13
    Tu ouvres ton projet,
    Tu retires le dossier build,
    Tu compresses (clic-droit)
    Tu joins le fichier avec Options Supplémentaires lors d'une réponse, ou tu me l'envoies par Courrier.

  • macvelottemacvelotte Membre
    08:11 modifié #14
    Voici ci-joint le fichier zip ...
  • Philippe49Philippe49 Membre
    08:11 modifié #15

    • Sélectionner File's Owner et efffacer le choix de la classe StretchView qui a été fait ,
    • Supprimer le cube bleu StretchView dans le MainMenu.nib
    • Refaire les connexions de tes pop-up vers la StretchView qui est sur la fenêtre.

    et là  c'est "la bonne stretch view", celle qui est réellement dessinée, qui va recevoir les messages

  • macvelottemacvelotte Membre
    08:11 modifié #16
    Selectionner File's owner pour quoi faire ?

    J'ai fait le rest, mais ça ne marche pas.
  • Philippe49Philippe49 Membre
    08:11 modifié #17
    dans 1233598230:

    Selectionner File's owner pour quoi faire ?

    Pour retirer la classe Stretchview qui lui a été attribuée à  tort.


    dans 1233598230:

    J'ai fait le rest, mais ça ne marche pas.

    Essaie :
    -(IBAction)liredegres:(id)sender
    {
    NSLog(@lire degre);
    degres=[sender tag];
    [self setNeedsDisplay:YES];
    }



  • macvelottemacvelotte Membre
    08:11 modifié #18
    OK, ça marche : j'avais fait des confusions ! Merci pour les excellents conseils ! J'ai ajouté une mise en mémoire qui fonctionne correctement.
Connectez-vous ou Inscrivez-vous pour répondre.