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 sur le bouton (en IB) à partir de mon code pendant l'exécution?
7 réponses
si vous avez un bouton qui est accroché à une action dans votre code, vous pouvez changer le titre sans une variable d'instance.
Par exemple, si le bouton est réglé à cette action:
-(IBAction)startSomething:(id)sender;
Vous pouvez tout simplement le faire dans la méthode:
-(IBAction)startSomething:(id)sender {
[sender setTitle:@"Hello" forState:UIControlStateNormal];
}
Ou si vous êtes désireux de basculer le nom du bouton, vous pouvez créer un BOOL
nommé "buttonToggled" (par exemple), et mettez 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;
}
}
UIButton *myButton;
[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
Oui. Il y a une méthode sur UIButton -setTitle:forState:
l'utiliser.
[myButton setTitle:@"Play" forState:UIControlStateNormal];
une Autre façon de bascule:
- (IBAction)signOnClick:(id)sender
{
if ([_signOnButton.titleLabel.text isEqualToString:@"Sign off"])
{
[sender setTitle:@"Sign on" forState:UIControlStateNormal];
}
else
{
[sender setTitle:@"Sign off" forState:UIControlStateNormal];
}
}
myapp.h
{
UIButton *myButton;
}
@property (nonatomic,retain)IBoutlet UIButton *myButton;
myapp.m
@synthesize myButton;
-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}
il n'y a pas besoin d'ajouter SI{}AUTREMENT{} flux de contrôle. Initialise les textes des boutons pour les différents états du constructeur View ou ViewController:
[btnCheckButton setTitle:@"Normal" forState:UIControlStateNormal]; [btnCheckButton setTitle:@"Selected" forState:UIControlStateSelected];
puis passez l'état du bouton à Selected:
[btnCheckButton setSelected:YES];
ensuite, changez L'état du bouton en Normal:
[btnCheckButton setSelected:NO];