Как проверить, анимирован ли NSProgressIndicator? - PullRequest
6 голосов
/ 31 августа 2011

NSProgressIndicator имеет методы, называемые startAnimation: и stopAnimation:, но нет метода, который я могу найти для проверки состояния (независимо от того, является ли оно в данный момент анимируемым или нет). Как бы вы это сделали?

Ответы [ 2 ]

4 голосов
/ 01 сентября 2011

Вы не должны хранить состояние элемента управления в самом элементе управления.

Элемент управления индикатора прогресса не обеспечивает доступ к своему анимированному состоянию, поскольку в отличие от текстового поля пользователь не может изменить состояние элемента управления. Вы никогда не окажетесь в ситуации, когда состояние элемента управления изменится, если ваш код его не инициирует. Потому что вы тот, кто устанавливает его состояние, поэтому вы должны следить за ним.

Какао использует шаблон Model-View-Controller, а индикатор прогресса - это представление. Если вы сохраняете состояние в элементе управления, вы нарушаете шаблон MVC.

Ваш вид должен всегда отражать вашу модель, и контроллер находится там, чтобы обеспечить синхронизацию вида и модели.

Вы должны либо использовать привязки Какао, чтобы связать анимированное состояние вашего индикатора прогресса с BOOL, хранящимся в вашей модели (предпочтительно), либо внедрить код в вашем классе контроллера для управления анимированным состоянием индикатора прогресса, когда есть замените его на BOOL, хранящийся в вашей модели.

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

Вы можете просто сохранить значение BOOL где-нибудь в вашем классе, которое вы установили на YES или NO при запуске и остановке анимации соответственно.

...