Первый вопрос в StackOverflow, а также в Cocoa newbye, и вдобавок я использую XCode 4 (будьте любезны, пожалуйста!)
Сценарий:
Простой NSPersistentDocument Многооконный: каждый документ имеет window.nib и прикрепленный WindowController. Приложение ВЫПОЛНЯЕТ NSTask strong > (в фоновом режиме), когда я нажимаю кнопку на ПАНЕЛИ ИНСТРУМЕНТОВ ОКНА.
В окне (внутри представления) я решил разместить хороший NSProgressIndicator (неопределенный), который анимируется при запуске задачи и stopAnimation при завершении задачи (я собираю сообщения о задачах через уведомления).
Образец кода:
NSButton -> IBAction -> метод в WindowController
- (IBAction)launchSim:(id)sender
{
[simcell launchTask];
[progBar startAnimation:self];
.... more code ...
}
Все работает красиво и отлично.
Теперь (как обычно в этом сценарии) вы получаете странную ошибку, и ваша работа становится непродуктивной:
Я решаю запустить то же действие также из MainMenu (из NSMenuItem):
В MainMenu.xib:
NSMenuItem ("RUN") -> FirstResponder -> Действие, определяемое пользователем в первом респонденте: launchSim (идентификатор типа)
Пункт меню RUN правильно запускает задачу (у меня есть сообщения NSLog DEBUG), НО анимация (startAnimation) progressBar не запускается!
РАЗНИЦА в 2 действиях:
- первый (рабочий) вызывается из файла Nib, принадлежащего WindowController
- второй (неработающий) вызывается из MainMenu.xib и отправляется в FirstResponder
Оба действия правильно выполняют другую часть кода в методе, но если я вызываю действие из меню, я не вижу никакой анимации индикатора выполнения.
Что мне не хватает?
Спасибо и всего наилучшего