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?

27
demandé sur Linuxmint 2011-03-10 22:08:44

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;
    }
}
70
répondu sudo rm -rf 2011-03-10 19:57:16
UIButton *myButton;

[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
17
répondu NWCoder 2011-03-10 19:11:47

Oui. Il y a une méthode sur UIButton -setTitle:forState: l'utiliser.

5
répondu Simon Goldeen 2011-03-10 19:11:06
[myButton setTitle:@"Play" forState:UIControlStateNormal];
4
répondu FreeAsInBeer 2011-03-10 19:12:19

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];
    }
}
4
répondu Robert 2013-06-18 15:21:23

myapp.h

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

myapp.m

@synthesize myButton;

-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}
3
répondu JohnAnge Kernodle 2012-08-11 16:17:26

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];
2
répondu Javier Calatrava Llavería 2015-01-09 14:58:56