8
votes

Perdu dans les types Nsbutton et des images alternées

Je voudrais avoir un nsbutton 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] . Est-ce possible sans obstacle avec la propriété alternatryImage à la main?


0 commentaires

4 Réponses :


3
votes

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


3 commentaires

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 pour le bouton et si votre bouton est NSTOGGLEBUTON Vous pouvez basculer entre les images standard et alterner les images à l'aide de TheButton.state = Nsoffstate; et `thebutton.state = nsstate;` `` `



19
votes

Ceci est possible sans changer manuellement l'image du bouton:

in Interface Builder (Editeur XIB / NIB) SET THE TYPE de NSBUTON à "TOGGLE" et l'image changera automatiquement à la Alternate image / titre.

Définissez le type pour basculer pour utiliser l'image alternative


0 commentaires

5
votes

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


0 commentaires

1
votes

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:

Type de bouton Tout en retenue quand libéré Push-in momentané première image assombrie première image Lumière momentanée première image assombrie première image Changement momentané Alt Image première image Appuyez sur / enfoncement première image assombrie première image On / Off première image assombrie première image bascule Alt Image Alt Image commutateur Alt Image Alt Image radio (non valide) Accelerator première image assombrie première image Multi niveau acc. première image assombrie première image

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.)


0 commentaires