Возможно, я неправильно понимаю ваш вопрос, но, похоже, вы хотите иметь возможность выделить серым цветом те заголовки меню, которые отображаются в строке меню системы (например, затенение меню «Файл»). Я не уверен, если это вообще возможно, но это, безусловно, идет вразрез с Руководствами Apple по человеческому интерфейсу :
Название меню отображается без затемнения.
даже если все команды меню
недоступно (затемнено) одновременно.
Пользователи всегда должны иметь возможность просматривать
содержимое меню, независимо от того,
В настоящее время доступны.
Таким образом, реальное решение проблемы состоит в том, чтобы иметь возможность выделять серым цветом все пункты меню в определенном меню, когда ваше приложение находится в определенном состоянии. Для этого реализует протокол NSUserInterfaceValidations . Требуется только реализация метода - (BOOL)validateUserInterfaceItem:
. Как правило, при реализации этого метода вы просто проверяете селектор проверяемого элемента пользовательского интерфейса и возвращаете YES, если он должен быть включен, или NO, если он не должен (который будет затенять пункт меню).