Интерфейс какао: 2d слайдер - PullRequest
1 голос
/ 19 ноября 2011

Я ищу 2D слайдер в Какао.

Должно быть что-то похожее на это:

a busy cat

это 2D слайдер Mathematica смотрите здесь . Похоже, что ничего подобного в конструкторе интерфейса XCode нет.

По сути, мой интерфейс какао должен показывать комнату, видимую сверху (пространство, в котором можно перемещать 2-й ползунок), и когда я нажимаю на него, 2D-курсор перемещается в это место в комнате. Есть идеи, как это сделать?

Проще всего было бы иметь 2-х ортогональный 1D-слайдер, но это не очень приятное решение.

ура!

1 Ответ

2 голосов
/ 19 ноября 2011

Действительно простой способ: создать подкласс NSView и использовать Трехкомпонентный подход к обработке событий мыши для записи текущей точки (преобразованной в любое выбранное вами координатное пространство, например 0,0 в центре ). В -drawRect: нарисуйте пересекающиеся линии и «ручку» (например, напрямую или нарисовав предварительно отрендеренное изображение «knob.png»). Так как NSView наследуется от NSResponder , вы можете использовать механизм target / action , чтобы уведомить ваш контроллер, когда значение представления изменилось из-за щелчка или перетаскивания ручки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...