2011-02-10 1 views

ответ

196

Hey Namratha, Если вы хотите изменить текст и включить/отключить состояние UIButton, это можно сделать довольно легко следующим образом;

[myButton setTitle:@"Normal State Title" forState:UIControlStateNormal]; // To set the title 
[myButton setEnabled:NO]; // To toggle enabled/disabled 

Если вы создали кнопки в Interface Builder и хотите получить доступ к ним в коде, вы можете воспользоваться тем, что они передаются в качестве аргумента к IBAction вызовов:

- (IBAction) triggerActionWithSender: (id) sender; 

Это может быть связано с кнопкой, и вы получите кнопку в аргументе sender, когда действие будет запущено. Если этого не достаточно (потому что вам нужно, чтобы получить доступ к кнопкам в другом месте, чем в действиях), объявить выход для кнопки:

@property(retain) IBOutlet UIButton *someButton; 

Тогда можно связать кнопку в IB к контроллеру, СИБ загрузки код будет устанавливать значение свойства при загрузке интерфейса.

+0

Спасибо! У меня есть UIButtons в моем приложении, но я нигде не упоминал их в коде. Я использовал конструктор интерфейса для регистрации механизма целевого действия (с этой целью у меня есть несколько методов IBAction для обработки щелчков кнопок), так как я могу получить доступ к кнопкам? – Namratha

+1

Как раз сейчас я понял, что редактировал ваш ответ, Муннетлеке, а не мой :) Надеюсь, с тобой все в порядке. – zoul

+1

Просто добавьте это, если вы хотите, чтобы свойство @ было объявлено для вас. В XCode 4 нажмите клавишу CTRL, нажмите кнопку, а затем перетащите указатель мыши в соответствующий файл .h. Появится диалоговое окно с запросом на имя свойства. Тогда вуаля у вас будет свойство для вас использовать в вашем коде! – milesmeow

9

Предполагая, что кнопка является UIButton:

UIButton *button = …; 
[button setEnabled:NO]; // disables 
[button setTitle:@"Foo" forState:UIControlStateNormal]; // sets text 

Смотрите документацию для UIButton.

19
[myButton setTitle: @"myTitle" forState: UIControlStateNormal]; 

Используйте UIControlStateNormal, чтобы установить название.

Есть несколько государств, которые UIbuttons предоставляют, вы можете посмотреть:

[myButton setTitle: @"myTitle" forState: UIControlStateApplication]; 
[myButton setTitle: @"myTitle" forState: UIControlStateHighlighted]; 
[myButton setTitle: @"myTitle" forState: UIControlStateReserved]; 
[myButton setTitle: @"myTitle" forState: UIControlStateSelected]; 
[myButton setTitle: @"myTitle" forState: UIControlStateDisabled]; 
+0

Я отправился в +1 к этому сообщению, но решил не делать этого. [self.eraseButton setTitle: @ "Стереть" forState: UIControlStateDisabled]; Это не уменьшает кнопку. Он ничего не делает, если у вас уже есть setEnable: как нет. – coolcool1994

12

Если кто-то, кто ищет решения в Swift, высадились здесь, было бы:

myButton.enabled = false // disables 
myButton.setTitle("myTitle", forState: UIControlState.Normal) // sets text 
3

Изменение названия кнопки:

[mybtn setTitle:@"My Button" forState:UIControlStateNormal]; 
[mybtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; 

Для Disable:

[mybtn setEnabled:NO]; 
0

Если вы хотите изменить заголовок как ответ на постукивание, вы можете попробовать это внутри метода IBAction кнопки в своем делете контроллера диспетчера. Это включает и отключает голосовую беседу. Настройка голосового чата здесь не рассматривается!

- (IBAction)startChat:(id)sender { 
UIButton *chatButton = (UIButton*)sender; 
if (!voiceChat.active) { 
    UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Voice Chat" 
                    message:@"Voice Chat will become live. Please be careful with feedback if your friend is nearby." 
                  preferredStyle:UIAlertControllerStyleAlert]; 
    UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault 
                  handler:^(UIAlertAction * action) {}]; 
    [alert addAction:defaultAction]; 
    [self presentViewController:alert animated:YES completion:nil]; 
    [voiceChat start]; 
    voiceChat.active = YES; 
    [chatButton setTitle:@"Stop Chat" forState:UIControlStateNormal]; 
} 
else { 
    [voiceChat stop]; 
    UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Voice Chat" 
                    message:@"Voice Chat is closed" 
                  preferredStyle:UIAlertControllerStyleAlert]; 
    UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault 
                  handler:^(UIAlertAction * action) {}]; 

    [alert addAction:defaultAction]; 
    [self presentViewController:alert animated:YES completion:nil]; 
    voiceChat.active = NO; 
    [chatButton setTitle:@"Chat" forState:UIControlStateNormal]; 
} 

}

голосовой чат специфичен для голосового чата, конечно, но вы можете использовать OW локального логическое свойство для управления коммутатором.

2

В Swift 3, вы можете просто изменить название кнопки по:

button.setTitle("Title", for: .normal) 

и отключить кнопку с помощью:

button.isEnabled = false 

.normal такого же, как UIControlState.normal, поскольку типа является случайны.

+0

Что мы должны использовать, если это кнопка действия? –

 Смежные вопросы

  • Нет связанных вопросов^_^