Передать команды NSMenu в текущее окно? - PullRequest
0 голосов
/ 25 июля 2011

Новичок в разработке для OS X, хотя и довольно опытный с iOS.

Мне не хватает чего-то простого в том, как NSMenu верхнего уровня взаимодействует с приложением.Я хочу, чтобы команда File-> Save перешла в текущее окно.До сих пор я мог получать только действия NSMenu в делегате приложения.Должен ли я отслеживать активное окно и вызывать методы из делегата приложения?

1 Ответ

2 голосов
/ 26 июля 2011

Во-первых, похоже, что вам нужно прочитать при обработке меню Mac, потому что есть много вещей, о которых вам нужно знать, чтобы правильно обращаться с меню.

Чтобы ответить на ваш конкретный вопрос, если пункт меню имеет цель nil, например, элемент меню Save, то система обработки меню перемещается вверх по цепочке респондента, начиная с текущего активного элемента управления или представления ( первый респондент), ищет объект, который реализует селектор действий для этого пункта меню.

Если вы не понимаете, как работает цепочка респондента, вам следует прочитать об этом тоже , потому что это фундаментально для понимания того, как работают приложения Mac.

Если вы хотите, чтобы ваш оконный контроллер обрабатывал действие ‑save:, когда его окно является главным окном, тогда все, что вам нужно сделать, это реализовать действие ‑save: в вашем оконном контроллере. Поскольку оконный контроллер находится в цепочке респондента до делегата приложения, будет использована его реализация метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...