Как программно добавить новый NSToolbarItem на существующую панель инструментов? - PullRequest
7 голосов
/ 06 сентября 2011

Я ищу метод с именем addNewItem:(NSToolbarItem *)item или что-то вроде этого, позволяющее мне добавить программно созданный элемент на панель инструментов, но я не нашел ни одного. Я хотел бы добавить элемент, который показывает всплывающее окно, когда пользователь нажимает на него, как в Safari, когда пользователь загружает что-то.

1 Ответ

14 голосов
/ 06 сентября 2011

Вам необходимо иметь класс, соответствующий протоколу NSToolbarDelegate, и иметь экземпляр этого класса, который будет делегатом вашей панели инструментов. Этот делегат, например, реализует -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:, который возвращает экземпляр NSToolbarItem для данного идентификатора, потенциально создавая этот элемент по требованию. Делая это, вы готовите своего делегата к возврату элемента панели инструментов, когда панель инструментов запрашивает у него элемент, соответствующий идентификатору.

Сделав это, вы можете программно добавить новый элемент панели инструментов на панель инструментов, отправив -[NSToolbar insertItemWithItemIdentifier:atIndex] в экземпляр панели инструментов. Идентификатор строки аргумента должен совпадать с тем, который использовался в предыдущем абзаце. Если вам нужно удалить элемент, отправьте -[NSToolbar removeItemAtIndex:] на панель инструментов.

Это описано с примерами в Добавление и удаление элементов панели инструментов раздела Темы программирования панели инструментов для какао документа.

...