inscription dans un NSTextField

macvelottemacvelotte Membre
01:27 modifié dans API AppKit #1
Un revenant qui souaite une bonne année à  tous !

Je n'arrive pas à  écrire une chaà®ne dans un NSTextField :
<br />-(void)ecrireannee<br />{<br />	id s=[NSString stringWithFormat:@&quot;année %i&quot;,annee];<br />	[anneeencours setObjectValue : s];<br />}<br />anneeencours est défini comme IBOutlet ; annee est un int ; mon champ de texte reste désespérément vide ! Il me semble pourtant que j&#39;ai fait les connexions nécessaires !<br /> <br />

Réponses

  • elfelf Membre
    01:27 modifié #2
    Il faut utiliser setStringValue: ;)

    -(void)ecrireannee<br />{<br />	[anneeencours setStringValue:[NSString stringWithFormat:@&quot;année %d&quot;,annee]];<br />}<br />
    
  • macvelottemacvelotte Membre
    01:27 modifié #3
    Oui elf : c'est évident ... mais ça ne marche pas non plus ! :(
  • elfelf Membre
    01:27 modifié #4
    Tu as verifié que ton outlet est correct?

    Met un text bidon dans le nib pour le text field et fais ça:

    -(void)ecrireannee<br />{<br />	NSString *s = [NSString stringWithFormat:@&quot;année %d&quot;,annee];<br />	NSLog(@&quot;%@ - %@&quot;, [anneeencours stringValue], s);<br />	[anneeencours setStringValue:s];<br />}<br />
    


    Dis moi ce que ça te donne...
  • macvelottemacvelotte Membre
    01:27 modifié #5
    ça ne donne rien ...

    Je vérifie l'outlet ...

    Et je me pose une autre question : comment écrire un texte dans une NSView ?
  • LeChatNoirLeChatNoir Membre, Modérateur
    01:27 modifié #6
    Chaque chose en son temps non ?
    Essayes d'abord de faire fonctionner ton TextField.
    L'outlet est elle connectée dans IB ?
    Tu vas dans IB, tu choisis ton controller et tu vas dans ses attributs, rubrique connexion, onglet outlet. Tu devrais voir ton outlet et voir si elle est connectée.
    Si tel est le cas, c'est que ta méthode -(void)ecrireannee n'est jamais appelée. Je vois que ça.
    a+
  • macvelottemacvelotte Membre
    01:27 modifié #7
    Ben, c'est connecté, et -(void)ecrireannee est appelé (vérification avc debug)  >:(
  • elfelf Membre
    01:27 modifié #8
    Avec le dernier code que j'ai donné, ça donne quoi dans le log?
  • macvelottemacvelotte Membre
    01:27 modifié #9
    elf, ça me donne ceci :
    2007-01-05 12:03:32.728 TestImage[3099] (null) - année 2007

    "année 2007" est ce que je voudrai mettre dans mon textefield ...
  • LeChatNoirLeChatNoir Membre, Modérateur
    01:27 modifié #10
    Ben y a un pb au niveau de ton Outlet.
    Elle est à  null.
    A priori, t'as peut être modifié son nom sans ré importer le .h dans IB non ?
  • AliGatorAliGator Membre, Modérateur
    01:27 modifié #11
    Soit tu n'as pas synchronisé ton NIB et ton code (Import Files) soit tu as connecté ton outlet dans le mauvais sens (et connecté une action à  la place) :P
  • macvelottemacvelotte Membre
    01:27 modifié #12
    Tout est relié dans le bon sens ...

    Je ne vois pas dut tou ce qui empêche l'action de se produire ... :crackboom:-
  • LeChatNoirLeChatNoir Membre, Modérateur
    01:27 modifié #13
    ben envoi ton projet alors...
    a+
  • WIMPWIMP Membre
    01:27 modifié #14
    Mon tuto Créer un jeu d'échecs : partie 2 devrait t'aider sur NSTextField.

    Pour écrire dans une NSView il faut utiliser des NSAttributedString, avec une des methodes

    drawAtPoint:
    drawInRect:
    drawAtPoint: withAttributes:
    drawInRect: withAttributes:

    détails p 246 de Cocoa par la pratique.

    Avec mes meilleurs voeux pour 2007 :p
Connectez-vous ou Inscrivez-vous pour répondre.