Почему не работает изменение текста UIButton с помощью точечного синтаксиса? - PullRequest
2 голосов
/ 09 августа 2011

Можно ли изменить текст метки заголовка UIButton с помощью точечного синтаксиса? Текст не меняется, если я делаю это с помощью точечного синтаксиса:

self.myButton.titleLabel.text = [NSString stringWithString:@"Nop"];

Но этот делает:

[self.myButton setTitle: @"Yep" forState: UIControlStateNormal];

Изменение текста работает для чистых UILabels, UIButton - это особый случай или что-то в этом роде?

Ответы [ 3 ]

10 голосов
/ 09 августа 2011

Это потому, что текст можно изменить для кнопки UIB для нескольких разных состояний (Нормальный, Выделенный и т. Д.).Apple просто решила требовать явного кода для установки текста.Возможно, вы могли бы создать категорию для реализации этого, если бы вы действительно этого хотели.

1 голос
/ 09 августа 2011

UIButton может переконфигурировать свои заголовки для любого из UIControlState (см. Здесь: UIControlState ).

Поскольку использование точечного синтаксиса не устанавливает заголовок для какого-либо определенного состояния, UIButton, вероятно, повторно конфигурирует заголовок для UIControlStateNormal, для которого ничего не установлено.

0 голосов
/ 09 августа 2011

Попробуйте

myButton.titleLabel.text=@"foo";

здесь работает

[] s

...