Aide s'il vous plaît. J'ai 4 NSButtons dans ma fenêtre (configuré en style de dégradé) et en fonction de l'entrée de l'utilisateur, je fais la couleur du bouton l'une des quatre couleurs différentes (via setImage en utilisant des fichiers .png). Mon code, qui fonctionne très bien est:Erreur lors de la sauvegarde du nom d'IBOutlet NSButton dans le tableau, puis de l'accès au tableau à setImage sous NSButton
if ([[ranColors objectAtIndex:0] isEqualToString:@"red"]) {
[color1 setImage:[NSImage imageNamed:@"Red.png"]];
}
else if ([[ranColors objectAtIndex:0] isEqualToString:@"yellow"]) {
[color1 setImage:[NSImage imageNamed:@"Yellow.png"]];
}
else if ([[ranColors objectAtIndex:0] isEqualToString:@"blue"]) {
[color1 setImage:[NSImage imageNamed:@"Blue.png"]];
}
else {
[color1 setImage:[NSImage imageNamed:@"Green.png"]];
}
Je répète ce code 4 fois pour les 4 boutons (color1, color2, color3 et color4). ranColors est un tableau qui contient la sélection de couleur de l'utilisateur. J'essaie de simplifier le code en utilisant un NSArray pour maintenir les noms de boutons IBOutlet: color1, color2, color3 et color4, puis en utilisant une boucle for à travers les 4 cycles. Voici le code:
for (int x = 0; x < 4; ++x) {
if ([[ranColors objectAtIndex:x] isEqualToString:@"red"]) {
[[revealPositions objectAtIndex:x] setImage:[NSImage imageNamed:@"Red.png"]];
}
else if ([[ranColors objectAtIndex:x] isEqualToString:@"yellow"]) {
[[revealPositions objectAtIndex:x] setImage:[NSImage imageNamed:@"Yellow.png"]];
}
else if ([[ranColors objectAtIndex:x] isEqualToString:@"blue"]) {
[[revealPositions objectAtIndex:x] setImage:[NSImage imageNamed:@"Blue.png"]];
}
else {
[[revealPositions objectAtIndex:x] setImage:[NSImage imageNamed:@"Green.png"]];
}
}
Je reçois l'erreur: [__NSCFConstantString setImage:]: sélecteur non reconnu envoyé à l'instance 0x100006098. L'erreur se produit lorsque je lis l'élément de tableau et que j'essaie ensuite de définir setImage dans le bon fichier. Il semble que je ne peux pas stocker le nom IBOutlet pour le bouton dans un tableau, puis accéder à ce nom et lui définir une propriété.
Toute aide serait appréciée.
A travaillé comme un charme - merci! – Keith
C'est génial! S'il vous plaît accepter la réponse. Codage heureux! – Yan
Désolé, j'ai oublié de le faire. – Keith