Renommer un bouton
Zyrol
Membre
Bonsoir,
Juste un petit truc surement simple pour vous...
Je voudrais changer le nom d'un NSButton, j'ai donc placé cette instruction :
[dualPause setTitle:"Reprise"];
dualPause est bien sur le nom du bouton (de l'Outlet)
c'est quoi le probleme ?
Juste un petit truc surement simple pour vous...
Je voudrais changer le nom d'un NSButton, j'ai donc placé cette instruction :
[dualPause setTitle:"Reprise"];
dualPause est bien sur le nom du bouton (de l'Outlet)
c'est quoi le probleme ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
As tu bien vérifié que la connexion est bien faite dans IB? Sinon, si tu appelles ce code dans le -init, de ton crontrôleur, ça ne peut pas aller. Il faut alors le déplacer dans le -awakeFromNib.
Note modo: J'ai déplacé ton message et cré un nouveau sujet. Il vaut mieux dans ce genre de cas le faire. Tu auras plus facile à retrouver les réponses, et une personne qui se pose la même question trouvera plus facilement aussi.
J'ai crée une Outlet (dans mon controleur.h) comme ceci :
IBOutlet id dualPause;
et ensuite j'ai lié ma classe controleur au bouton dans IB.
Apparemment tu me parles de le lier avec le -awakeFromNib, coment faire ? je n'ai pas l'honneur de connaà®tre ce -awakeFromNib !!
Merci pour ton aide.
{
}
Pour être complet indique que le fichier nib est chargé. Si tu essaye d'utiliser un outlet avant (par exemple dans le init) le code n'aura aucun effet car cet outlet/object vaut null
J'espère que tu as correctement tapé la commande :
[dualPause setTitle:[size=14pt]@[/size]"Reprise"];
Car sans le , effectivement, ça peut pas marcher !
.
Je suis désolé, mais là j'avoue être noyé...
Je n'ai pas un haut niveau de prog en objective-C et là , il me manque un maillon pour comprendre...
Avant vos messages, je n'avais pas la connaissance des nib ou awakeFromNib. Je me contentais de programmer de façon : un bouton = une action et des fonctions séparées dans le code.
Je pensais que pour changer l'affichage d'un bouton c'était plus simple (Aussi simple que de le griser par exemple) :crackboom:-
Je sent que je vais créer un autre bouton si c'est trop complexe...
Oublie -(void)awakeFromNib. Renaud voulait simplement savoir où dans ton code tu fais le setTitle.
Le plus important, c'est effectivement la bonne connexion dans IB entre ton bouton et l'instance de ta classe contrôleur. Et surtout, le nom de l'outlet doit être identique entre IB et XCode (attention aux majuscules/minuscules).
Parfois, il faut "nettoyer" (menu Build, puis Clean All Targets) la compil pour forcer XCode à tout recompiler (et surtout à refaire tous les liens).
.
Ensuite j'ai inseré ce code dans mon controleur.m :
[dualPause setTitle:"Reprise"];
et j'obtiens cette erreur à la compilation :
Controlleur.m:254: passing arg 1 of `setTitle:' from incompatible pointer type
???
Bah oui, t'as oublié le @ devant ta chaà®ne "Reprise".
Ecris plutôt ça et ça ira mieux :
[dualPause setTitle:[size=22pt][/size]"Reprise"];
.
Et par curiosité, poourquoi fallait il ce @ ???
Jamais 2 sans 3 Bru ! :P
Le @ indique au compilateur que ta chaine est un objet de classe NSString Zyrol.