Какао: Пользовательский элемент управления не ограничен рамкой окна - как начать? - PullRequest
1 голос
/ 04 августа 2010

Я хочу создать пользовательский элемент управления, который бы работал следующим образом: у вас есть своего рода NSButton с изображением.Вы нажимаете на кнопку, а затем появляется большой квадрат с сеткой фотографий.Вы нажимаете на одну из фотографий, и она устанавливается как новое изображение для кнопки.(квадрат исчезает)

Теперь, как нарисовать этот большой квадрат с фотографиями, если я хочу, чтобы он не ограничивался рамкой окна?Я имею в виду, что если кнопка была близка к границе окна, квадрат будет частично за пределами окна.Я также хотел бы добавить тень к квадрату и анимацию для открытия / закрытия.

Одна важная вещь: я хочу иметь возможность рисовать не только квадрат, но и любые другие простые формы (круги)!1005 *

1 Ответ

1 голос
/ 04 августа 2010

Это на самом деле не вопрос рисования, а вопрос общего вида. Важно провести это различие.

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

Легко установить изображение NSButton, поэтому я оставлю это вам. Действие вашей кнопки, однако, скажет некоторому контроллеру показать «средство выбора изображения» для данной кнопки. Ваш инструмент выбора изображений будет иметь вид окна без полей со списком изображений внутри. Средство выбора изображений может быть IKImageBrowserView (для этого элемента управления необходимо включить Image Kit в Интерфейсном Разработчике), которое дает вам iPhoto-подобную сетку изображений (с / без заголовков, различными типами границ и т. Д.).

Объяснение работы этого контроллера и того, как он создает окно, управляет выделением и устанавливает изображение кнопки очень широкое , поэтому, если вы застряли на любом из этих шагов, вы ' Вам нужно будет создать отдельный вопрос для каждой проблемы , в противном случае этот ответ должен быть руководством по написанию вашего приложения для вас.


* Ваша проблема немного сложнее из-за вашего желания иметь «всплывающие окна» различной формы ... вам нужно убедиться, что ваши доступные фотографии аккуратно вписываются в форму, чтобы ни одно из них не было обрезано. Вооружившись базовыми знаниями геометрии вида, я оставлю это вам в качестве упражнения. Подсказка: вы можете использовать прозрачное окно без полей для размещения вида, который рисует себя в любой фигуре, какую пожелаете .

...