2015-06-25 4 views
0

Я делаю свое первое приложение для Mac. Я добавил меню и настроил его. В чем моя проблема, мне нужны некоторые настройки в представлении about. В то время как вокруг меню щелкнуто, автоматически появится окно с информацией о имени, значке, строке авторского права, версии и т. Д., Полученном из приложения plist. О меню в приложении XCode, в котором есть кнопки для Подтверждения и Соглашения Лицензиата. В хроме Сведения о Chrome создадут новую вкладку на веб-странице и будут показаны детали. Как это возможно? Любая помощь приветствуется.Mac-приложение О настройке меню

ответ

0

Кажется, что вы можете сделать это в своем MainMenu.xib, перейти к целевому действию пункта меню About myApp к вашему пользовательскому действию.

Смотрите документ:

Подключение пунктов меню Через NIB Files

Элементы в строке меню Х приложения OS часто нужно взаимодействовать с множеством различных объектов, в том числе документы вашего приложения и окон , Проблема в том, что многие из этих объектов не могут (или не должны) получать доступ непосредственно из основного файла nib. Файл Владелец основного файла nib всегда задается экземпляром класса NSApplication . И хотя вы могли бы создать экземпляр числа пользовательских объектов в вашем основном файле nib, сделать это вряд ли стоит практичным или необходимым. В случае объектов документа подключение непосредственно к конкретному объекту документа даже не возможно, потому что количество объектов документа может изменяться динамически и может быть равно ноль.

Большинство пунктов меню отправки сообщений действия к одному из следующих способов:

  • Неподвижный объект, который всегда обрабатывает команду

  • динамический объект, например, документ или окно

Обмен сообщениями с фиксированными объектами - относительно простой процесс, который обычно лучше всего обрабатывается через делегат приложения. Объект делегирования приложения помогает объекту NSApplication в запуске приложения и является одним из немногих объектов, которые по праву принадлежат в основном файле nib. Если пункт меню ссылается на команду уровня приложения , вы можете реализовать эту команду непосредственно в делегировании приложения или просто передать делегату сообщение на соответствующий объект в другом месте приложения.

Если у вас есть пункт меню, который действует на содержимое самого фронтального окна , вам необходимо связать элемент меню с объектом-ответчиком . Если метод действия, связанный с пунктом меню , относится к одному из ваших объектов (и не определен Cocoa), вы должны добавить это действие первому ответчику до создания соединения .

После создания соединения вам необходимо реализовать способ действия в вашем пользовательском классе. Этот объект также должен реализовать метод validateMenuItem: , чтобы включить элемент меню в соответствующее время. Для получения дополнительной информации о том, как цепочка ответчиков обрабатывает команды, см. Руководство по управлению событиями в какао.

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