2011-01-25 3 views
3

загружает окно импорта пользовательских файлов в моем какао приложении с помощью:Отключить (серое) главное меню при отображении модального окна?

[NSApp runModalForWindow:window];

В окне отображается нормально, и является модальным.

Однако основное меню приложения по-прежнему активно (например, меню «Файл» и элементов), что делает излишним отображение модального дисплея.

Я искал это, искал stackoverflow и cocoa-dev и искал документы Apple, но не смог найти способ отключить меню или, по крайней мере, выбранные пункты меню.

Кто-то предложил использовать это:

NSModalSession session = [NSApp beginModalSessionForWindow:window];
[NSApp runModalSession];

но это, кажется, не работает. Опять же, окно отображается модально, но главное меню все еще активно.

Может ли кто-нибудь предложить, как отключить главное меню (серые элементы меню) при отображении модального окна?

Есть ли способ сделать это за один раз на уровне меню или мне нужно отключить каждый отдельный пункт меню?

Должно быть, у меня что-то не хватает, поскольку такое поведение в обычном режиме используется в приложениях Cocoa.

Thanks

Darren.

ответ

3

мне нужно реализовать (в AppDelegate) следующий метод:

- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem 

Возвращение NO отключает ссылочный пункт меню.

Все работает отлично.

+0

Где вы это реализовали? В делегате приложения? (Также имя функции имеет опечатку) – Geesu

+0

Да, в приложении Делегат. Исходный ответ обновлен. –

Смежные вопросы