Как разработать приложение с QuartzComposer-подобным графическим интерфейсом - PullRequest
3 голосов
/ 03 ноября 2011

Я планирую написать относительно простое приложение для построения схем, подобных базам данных.Цель состоит в том, чтобы создать полезный инструмент и выполнить программирование Какао.Основным компонентом этого приложения будет представление, которое позволяет пользователю размещать перетаскиваемые блоки с редактируемыми списками внутри, а затем связывать их с помощью линий.Я уверен, что вы знаете, о чем я думаю.

Это может выглядеть примерно так: QuartzComposer gui example

Проблема в том, что я не знаю, что будет лучшеПодход в этом случае.Должен ли я:

  1. Подкласс NSView и написать огромный вид, который управляет рендерингом блоков, соединений, обрабатывает все события и т. Д. Или ...
  2. Записать представления для блоков, а затемиспользовать некоторую (неизвестную мне) инфраструктуру для управления и отображения их, или ...
  3. Использовать что-то, что делает то, что я хочу, и кто-то уже написал (не может ничего найти), или ...
  4. Что-то еще (??)

1 и 2, безусловно, выполнимо, но я хочу сделать это правильно.Я думаю, было бы здорово повторно использовать некоторые готовые элементы управления Какао внутри коробок.

Я опытный программист, но довольно плохо знаком с Cocoa и Objective-C.

А как бы Ты это сделал?Любые советы и идеи высоко ценятся:)

Ответы [ 2 ]

1 голос
/ 05 ноября 2011

Я прочитал комментарии и ответы, провел некоторые исследования и придумал такой дизайн.Проверьте макет ниже:

my design

Выглядит ли это вменяемым?

1 голос
/ 04 ноября 2011

Каждый блок, скорее всего, будет нестандартным NSView. BoxView возможно. Тогда у вас будет контроллер представления для представления, которое содержит поля. Этот контроллер представления будет обрабатывать перемещение блоков и тому подобное. Ящики будут добавлены в представление контроллера представления как подпредставления. В любом случае, я бы выбрал такой подход.

...