Здравствуйте!
— Не хотите ли войти
2
ответа

CorePlot в Toolbar

Задача — добавить произвольный элемент на Toolbar, если говорить конкретее — необходимо получить график на базе CorePlot в Toolbar-е. Есть идеи с какой стороны к этой задаче вообще подступиться? Пробую запихнуть на прямую, через IB — создание проходит нормально, но ничего не отображается, пробую создать собственный ToolbarItem — аналогично. Тот же код, отвечающий за создание элемента в случае с его отображением на обычном View отрабатывает нормально и все отлично отображается.
В принципе, вполне подошло бы решение по запихиванию любого произвольного View в Toolbar, но гугление результатов не приносит.
Есть идеи?

6 мая 2010
Если не трудно, две вещи: тэги проставить и описать более подробно, что требуется? Может, и пихать не придется.
alex
Зачем здесь теги? Ни одно из слов не является кодом.

Ответы

Итак, проблема решена. Мини-руководство по добавлению произвольного элемента на Toolbar.

  1. Создаем Toolbar любым способом: программно при помощи -(id)initWithItemIdentifier:(NSString*)itemIdentifier либо в IB. на мой взгляд создание вручную более удобно (почему ниже).
  2. Указываем в качестве делегата Toolbar какой-либо объект, я воспользовался главным NSApplicationDelegate. Соответственно привязку делаем либо при помощи -(void)setDelegate:(id <NSToolbarDelegate>)delegate либо в IB.
  3. В nib файл добавляем Custom View, которые планируем отображать в Toolbar, и создаем для них Outlets в классе-делегате Toolbar.
  4. Добавляем на View то что хотим отобразить в качестве элемента Toolbar, при необходимости добавляем Controller.
  5. Для класса-делегата реализуем методы:
    • создание произвольного элемента для Toolbar по идентификатору -(NSToolbarItem*)toolbar:(NSToolbar*)toolbar itemForItemIdentifier:(NSString*)itemIdent willBeInsertedIntoToolbar:(BOOL)willBeInserted;
    • Список элементов отображаемых по умолчанию -(NSArray*)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar. Вот тут содержится главный подвох при комбинировании элементов Toolbar созданных в IB и программно — программные элементы добавляются в качестве первых и каким образом изменить их порядок не понятно;
    • Список элементов доступных из меню настройки -(NSArray*)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar.
  • В методе itemForItemIdentifier привязываем Outlet созданный на шаге (3) к переданному NSToolbarItem при помощи метода -(void)setView:(NSView*)view.

    На этом все, делать даже быстрее чем писать :)

  • 7 мая 2010
    Отлично! Спасибо.
    alex

    Элемент тулбара — UIBarButtonItem. У него есть метод initWithCustomView:. Создаете руками UIBarButtonItem, инициализируете этим методом, передаете свою вьюху, в которой рисуете что угодно. Должно работать, если я правильно понимаю.

    6 мая 2010
    Только что победил несоклько по-другому. Позже отпишусь в деталях, думаю будет полезно, информация на этот счет достаточно скудная.
    Зарегистрируйтесь или войдите, чтобы добавить свой комментарий или ответ на вопрос.
    © 2009-2012, ООО «Инру»
    Вход
    Имя пользователя:
    Пароль:
    Или…
    Twi
    Отмена
    Войти
    Восстановить забытый пароль…