web-dev-qa-db-fra.com

Changer le texte du bouton de xcode?

J'ai une IBAction connectée à un bouton dans mon Interface Builder.

Est-il possible de modifier le texte du bouton (en IB) depuis mon code pendant l'exécution?

29
Linuxmint

Si vous avez un bouton lié à une action dans votre code, vous pouvez modifier le titre sans variable d'instance.

Par exemple, si le bouton est défini sur cette action:

-(IBAction)startSomething:(id)sender;

Vous pouvez simplement le faire dans la méthode:

-(IBAction)startSomething:(id)sender {
    [sender setTitle:@"Hello" forState:UIControlStateNormal];
}

Ou si vous souhaitez basculer le nom du bouton, vous pouvez créer un BOOL nommé "buttonToggled" (par exemple), et basculer le nom de cette façon:

-(IBAction)toggleButton:(id)sender {
    if (!buttonToggled) {
        [sender setTitle:@"Something" forState:UIControlStateNormal];
        buttonToggled = YES;
    }
    else {
        [sender setTitle:@"Different" forState:UIControlStateNormal];
        buttonToggled = NO;
    }
}
73
sudo rm -rf
UIButton *myButton;

[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
19
NWCoder

Oui. Il existe une méthode sur UIButton -setTitle:forState: Utiliser ça.

5
Simon Goldeen
[myButton setTitle:@"Play" forState:UIControlStateNormal];
4
FreeAsInBeer

Une autre façon de basculer:

- (IBAction)signOnClick:(id)sender
{
    if ([_signOnButton.titleLabel.text isEqualToString:@"Sign off"])
    {
        [sender setTitle:@"Sign on" forState:UIControlStateNormal];
    }
    else
    {
        [sender setTitle:@"Sign off" forState:UIControlStateNormal];
    }
}
4
Robert

myapp.h

{
UIButton *myButton;
}
@property (nonatomic,retain)IBoutlet UIButton *myButton;

myapp.m

@synthesize myButton;

-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}
3
JohnAnge Kernodle

Il n'est pas nécessaire d'ajouter si {} else {} contrôle le flux. Initialisez les textes des boutons pour différents états sur le constructeur View ou ViewController:

[btnCheckButton setTitle: @ "Normal" forState: UIControlStateNormal]; 
 [btnCheckButton setTitle: @ "Selected" forState: UIControlStateSelected];

Basculez ensuite l'état du bouton sur Sélectionné:

[btnCheckButton setSelected: YES];

Basculez ensuite l'état du bouton sur Normal:

[btnCheckButton setSelected: NO];