Подключение пунктов меню в приложениях на основе документов
Я уже задал пару вопросов по этой теме и на самом деле не получил реального ответа о том, как это сделать (на самом деле он получил "Значок Tumbleweed" lol).
У меня есть приложение на основе документа (это означает, что Menu.Xib отделен от MyDocument.Xib).
Скажем, я хочу добавить кнопку "Жирный" или кнопку "Проверить орфографию" (элементы, перечисленные в Menu.xib(в разделе "Формат" > "Шрифт" и т.д.) в MyDocument (основной интерфейс). Я не могу понять, как это сделать это.
Любая помощь будет принята с благодарностью (я сразу же вознагражу ответ, если это сработает, это натолкнуло меня на пару недель).
Я попытался добавить диспетчер шрифтов в MyDocument.Xib и подключиться таким образом, но кнопка Bold только позволяет, она не отключается. Кроме того, проверка орфографии и т.д. Не может быть активирована с помощью диспетчера шрифтов.
Должен быть лучший способ сделать это.
Документация Apple невероятно расплывчата.
Ответы
Ответ 1
Это именно то, для чего предназначен объект First Responder в IB. Это прокси-объект для подключения действий. Любые сообщения о действии, отправленные ему, передаются по цепочке ответчиков в первый объект, который их принимает. Для приложений на основе документов цепочка ответчиков включает текущий документ. Итак, чтобы связать элемент меню с вашим документом:
- При необходимости добавьте действие к первому ответчику. Вы можете сделать это из окна инспектора IB.
- Подключите действие к первому ответчику, как если бы это был обычный объект.
- Внедрите метод действия в свой документ.
Если вам необходимо добавить сообщение к первому ответчику программно, установите цель объекта nil
.