Исходная информация:
Я недавно обновился с Lion до MountainLion и новейшего xCode. Приложение, над которым я работаю, имеет цель развертывания 10.7.
Проблема:
У меня есть настройка NSButton
в Interfacebuilder с Название: "Пуск" и Альтернативный вариант: "Стоп". В кнопках IBAction
проверяю состояние приложения (BOOL isRunning) и меняю состояние при каждом нажатии кнопки вот так:
[startStopButton setState:[appDelegate.dataController appIsRunning]];
Все работало нормально. После того как я перешел на новый xCode, кнопка больше не меняет название.
Вещи, которые я уже пробовал:
- Проверил все связи между IBAction и IBOutlet по этой кнопке. Сбросить все. Не помогло.
- Создал новый NSButton, попробовал то же самое. Не работает.
Установка титров через код: Не помогло.
[startStopButton setTitle:@"Start"]; [startStopButton setAlternateTitle:@"Stop"];
Думал, что это может быть проблема с логическим значением. Поэтому я проверил, не находится ли кнопка в смешанном режиме. Затем жестко запрограммированные изменения состояния с 1 и 0 из типа int. Никаких изменений.
Каким-то образом, когда я использую
[startStopButton setTitle:@"TEST"]
, а затем меняю состояние, оно ОДИН РАЗ изменяет состояние на альтернативное, но не обратно. Строка "TEST" никогда не отображается на кнопке...Я записал значение
[appDelegate.dataController appIsRunning]
, и оно возвращает правильные значения.
Я понятия не имею, как это решить. Все работало нормально, я ничего не менял, и это не имеет для меня никакого смысла. Кто-нибудь сталкивался с аналогичной проблемой?