Я пытаюсь изменить заголовок UIButton
, который я создал программно, когда пользователь нажимает на него. Итак, это мой код для создания UIButton
:
myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, parentView.frame.size.width, parentView.frame.size.height)];
[myButton setBackgroundColor:[UIColor blackColor]];
[myButton setAlpha:0.7];
[myButton setTitle:@"Hello" forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(userClicked:) forControlEvents:UIControlEventTouchUpInside];
[parentView addSubview:myButton];
И, в моем методе userClicked:
, я делаю:
-(void) userClicked:(UIButton*)button
{
NSLog(@"USER CLICKED!!!");
if ([NSThread isMainThread])
{
NSLog(@"is main thread");
}
[button setTitle:@"Bye" forState:UIControlStateHighlighted];
[button setTitle:@"Bye" forState:UIControlStateNormal];
[button setTitle:@"Bye" forState:UIControlStateSelected];
[self someLengthyComputation];
}
Странно то, что я вижу напечатанные сообщения журнала:
USER CLICKED!!!
isMainThread
Но название кнопки не меняется! Что я делаю неправильно?
EDIT: настройка заголовка для нескольких состояний также не работает.
EDIT2: Если я напечатаю описание кнопки в окне отладчика Xcode, он отобразит правильный заголовок!
Printing description of button->_titleView:
<UIButtonLabel: 0xa4c9310; frame = (95 216; 130 22); text = 'Bye'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xa44f080>>