Je voudrais avoir un nsbutton code> avec une image et une autre image. L'image alternative doit être affichée lorsque vous appuyez sur le bouton et je voudrais également afficher l'image alternative à partir du code, appelant quelque chose comme [bouton Sélectionne: Oui] code>. Est-ce possible sans obstacle avec la propriété alternatryImage code> à la main? P>
4 Réponses :
Le moyen le plus simple consiste à basculer entre les deux images:
@implementation NSButton (Select)
- (void) setSelected: (BOOL) yn
{
NSImage *const tmp = [self image];
[self setImage:[self alternateImage]];
[self setAlternateImage:tmp];
}
@end
Merci, tu as probablement raison. J'ai ajouté une catégorie simple pour basculer entre les images.
Toute idée de la manière dont je peux définir l'image alternative pour l'événement HOVER (lorsque la souris est sur le bouton, pas lorsque vous avez cliqué sur)?
@Theuseful: vous devez utiliser un Trackingarea Code> pour le bouton et si votre bouton est NSTOGGLEBUTON CODE> Vous pouvez basculer entre les images standard et alterner les images à l'aide de TheButton.state = Nsoffstate; code> et `thebutton.state = nsstate;` `` `
Ceci est possible sans changer manuellement l'image du bouton: p>
in Interface Builder (Editeur XIB / NIB)
p>
Vous pouvez utiliser un nsbutton code> avec type défini sur nstogglebutton code>, puis bascule entre l'image code> et le alternateImage code> Utilisation du NSONSTATE code> / NSOffState code> états du nsbutton code>. NSButton* theButton = [[NSButton alloc] initWithFrame:....];
theButton.image = .....
theButton.alternateImage = .....
theButton.state = NSOffState; // displays the image
theButton.state = NSOnState; // displays the alternateImage
Je viens de construire tous les 10 types de boutons dans l'inspecteur d'attributs de l'éditeur de l'interface sans codage ajouté. Voici les résultats: P>
bascule et commutateur revenir à l'image d'origine lorsque vous appuyez à nouveau sur la touche. (Si vous modifiez le type de bouton en radio dans l'inspecteur d'attributs du bouton, il revient à commuter.) P>