CorePlot в Toolbar
Задача — добавить произвольный элемент на Toolbar, если говорить конкретее — необходимо получить график на базе CorePlot в Toolbar-е. Есть идеи с какой стороны к этой задаче вообще подступиться? Пробую запихнуть на прямую, через IB — создание проходит нормально, но ничего не отображается, пробую создать собственный ToolbarItem — аналогично. Тот же код, отвечающий за создание элемента в случае с его отображением на обычном View отрабатывает нормально и все отлично отображается.
В принципе, вполне подошло бы решение по запихиванию любого произвольного View в Toolbar, но гугление результатов не приносит.
Есть идеи?
Ответы
Итак, проблема решена. Мини-руководство по добавлению произвольного элемента на Toolbar.
- Создаем Toolbar любым способом: программно при помощи -(id)initWithItemIdentifier:(NSS
tring*)itemIdentifier
либо в IB. на мой взгляд создание вручную более удобно (почему ниже). - Указываем в качестве делегата Toolbar какой-либо объект, я воспользовался главным NSApplicationDelegate. Соответственно привязку делаем либо при помощи -(void)setDelegate:(id <NSToolbarDelegate>)delegate либо в IB.
- В nib файл добавляем Custom View, которые планируем отображать в Toolbar, и создаем для них Outlets в классе-делегате Toolbar.
- Добавляем на View то что хотим отобразить в качестве элемента Toolbar, при необходимости добавляем Controller.
- Для класса-делегата реализуем методы:
- создание произвольного элемента для Toolbar по идентификатору -(NSToolbarItem*)toolba
r:(NSToolbar*)toolbar
itemForItemIdentifier
:(NSString*)itemIdent
willBeInsertedIntoToolbar
:(BOOL)willBeInserted
; - Список элементов отображаемых по умолчанию -(NSArray*)toolbarD
efaultItemIdentifiers
:(NSToolbar*)toolbar. Вот тут содержится главный подвох при комбинировании элементов Toolbar созданных в IB и программно — программные элементы добавляются в качестве первых и каким образом изменить их порядок не понятно; - Список элементов доступных из меню настройки -(NSArray*)toolbarA
llowedItemIdentifiers
:(NSToolbar*)toolbar.
- создание произвольного элемента для Toolbar по идентификатору -(NSToolbarItem*)toolba
В методе itemForItemIdentifier привязываем Outlet созданный на шаге (3) к переданному NSToolbarItem при помощи метода -(void)setView:(NSView*)view.
На этом все, делать даже быстрее чем писать :)
Элемент тулбара — UIBarButtonItem. У него есть метод initWithCustomView:. Создаете руками UIBarButtonItem, инициализируете этим методом, передаете свою вьюху, в которой рисуете что угодно. Должно работать, если я правильно понимаю.