Установка NSDocument в качестве делегата NSMenu

У меня есть пункт меню, состояние которого должно зависеть от того, какой NSDocument открыт. Насколько я понимаю, для динамического изменения состояния следует использовать метод делегата NSMenu menuNeedsUpdate:.

Кажется, я бы хотел, чтобы делегат меню был первым ответчиком в MainMenu.xib. Однако Interface Builder не позволяет мне установить его в качестве делегата главного меню. Как я могу сделать делегата, который сможет получить доступ к текущему активному документу?


person Judah Jacobson    schedule 12.04.2011    source источник


Ответы (1)


Обычно я вношу такие изменения в validateMenuItem: вызывается перед отображением меню. Получателя действия спрашивают, должен ли элемент быть включен или нет. Но вы можете сделать практически любые изменения там. Начиная с версии 10.5 также безопасно добавлять и удалять элементы во время такого вызова.

person Max Seelemann    schedule 12.04.2011