Я хочу добавить элемент интерфейса в стиле "редактора патчей" Quartz Composer в мое приложение Cocoa / Objective C (++). Для тех, кто не знаком с QC, редактор патчей представляет собой визуальное представление графика патчей: эффективно показывает каждый узел и его свойства, а также предоставляет управляемый мышью интерфейс выбора / щелчка / перетаскивания. Это выглядит как...
Пример Quartz Composer http://files.me.com/archgrove/ya1xhh
Я буду использовать его для визуализации определенного типа многокорневого дерева, где у каждого узла есть некоторый связанный текст и дуга, соединяющая его со своими дочерними элементами. Пользователи будут нажимать на узлы дерева, чтобы выбрать их, а также перетаскивать их.
В данный момент я использую собственный NSView в представлении прокрутки, в котором Quartz рисует каждый узел, дуги и т. Д. При каждом рендеринге и обрабатывает ввод с помощью мыши и клавиатуры вручную (включая тестирование нажатия, перемещение и т. Д.). Это кажется жестоким изобретательским подходом и не очень хорошо взаимодействует с Core Animation. Я надеюсь, что у кого-то есть общий альтернативный совет. Я размышляю по линии ...
- Существующая контрольная / сторонняя библиотека, которую я пропустил
- Сделайте каждый узел в дереве NSView и используйте обычную структуру представления для обработки ввода, одновременно рисуя графику таким же образом. Но тогда рендеринг дуги между узлами, кажется, не вписывается в дизайн
- Что-то еще использует один NSView, но делает каждый узел дерева и дугу отдельным слоем
- Что-то еще
Спасибо, любезно,
adamw