Изменить текст кнопки с xcode? - PullRequest
29 голосов
/ 10 марта 2011

У меня есть IBAction, подключенный к кнопке в Интерфейсном Разработчике.

Можно ли изменить текст на кнопке (в IB) из моего кода во время выполнения?

Ответы [ 7 ]

73 голосов
/ 10 марта 2011

Если у вас есть кнопка, которая связана с действием в вашем коде, вы можете изменить заголовок без переменной экземпляра.

Например, если кнопка настроена на это действие:

-(IBAction)startSomething:(id)sender;

Вы можете просто сделать это в методе:

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

Или, если вы хотите переключить имя кнопки, вы можете создать BOOL с именем "buttonToggled" (например) и изменить имя следующим образом:

-(IBAction)toggleButton:(id)sender {
    if (!buttonToggled) {
        [sender setTitle:@"Something" forState:UIControlStateNormal];
        buttonToggled = YES;
    }
    else {
        [sender setTitle:@"Different" forState:UIControlStateNormal];
        buttonToggled = NO;
    }
}
19 голосов
/ 10 марта 2011
UIButton *myButton;

[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
5 голосов
/ 10 марта 2011

Да. На UIButton -setTitle:forState: есть метод, использующий это.

4 голосов
/ 18 июня 2013

Другой способ переключения:

- (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 голосов
/ 10 марта 2011
[myButton setTitle:@"Play" forState:UIControlStateNormal];
3 голосов
/ 11 августа 2012

myapp.h

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

myapp.m

@synthesize myButton;

-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}
2 голосов
/ 09 января 2015

Нет необходимости добавлять if {} else {} управляющий поток. Инициализируйте текст кнопки для различных состояний в конструкторе View или ViewController:

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

Затем переключите состояние кнопки в выбранное:

[btnCheckButton setSelected:YES];

Затем переключите состояние кнопки в нормальное состояние:

[btnCheckButton setSelected:NO];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...