Вопрос

Я начинаю разработать свое первое полноценное приложение какао, содержащее вид, который я хотел бы вести себя (и посмотреть), похожий на Automator's AMWorkflowView.

Основные особенности, которые я хотел бы достичь:

  • Позиционирование субвезонных представлений
  • Отображение подваи в расширенных / рухнутых состояниях
  • Многократный выбор
  • Перетащите

Для того, чтобы привыкнуть к какао, я начал с обычаи NSView которые в основном послужили контейнером для пользовательских подпроектов и обрабатывали их позиционирование и множественный выбор. Сопульты также являются подклассами NSView, и содержат переменную величину самим видов, таких как кнопки, этикетки и всплывающие меню, и поэтому могут иметь разные высоты. Это работало довольно хорошо, но прежде чем продолжать, я хочу, чтобы у меня было все аккуратно и оставляют в соответствии с узором MVC.

Я подозреваю, что уже есть класс в какао, который облегчает реализацию контейнера зрения, как можетe NSCollectionView. Похоже, что нет (простого) пути отображать вид на разные размеры в NSCollectionView, хоть. Должен ли я продолжать реализовывать мой обычай NSView (вероятно, используя NSArrayController Для подбора и сортировки поддержки) или есть лучшие способы пойти?

Любая помощь высоко ценится

Это было полезно?

Решение

К сожалению, ответ вам придется катиться. NSCollectionView Не допускает элементы размером с переменной (которые также правит расширены / рухнутые состояния).

Для ограниченного количества предметов вы можете добиться этого довольно легко (вам просто нужен вид контейнеров, который правильно устраивает подзлыми сообщениями, когда он предпринимает макет, то вам нужно убедиться, что вы повторно раскладываете, когда вещи меняются). Однако для многих подпроектов вам нужно будет позаботиться о том, чтобы быть максимально эффективным. Это может начать с выкладывания как можно меньше (например, только те «после» просмотра изменений) и получить как комплекс, как кэширование визуального представления прототипа визуализации, рисуя кэшированные изображения (FAST!) Для всех, кроме точки зрения Быть отредактированным, и только использование / позиционирование «реального» представления для редактирования представления.

Перетаскивание работает так же, как у него всегда есть, но ни одна из вышеперечисленных аккаунтов для красивой анимации NSCollectionView дает тебе. :-) Это быстро и красиво-анимировано точно потому что Все субпроизводитеки являются равномерными (поэтому расчеты макета быстро и просты). Как только вы добавляете нерегулярные размеры, проблема становится значительно более сложной.

Нижняя строка: если вам нужен вид на различные размеры, NSCollectionView Не будет работать, и вам нужно будет катиться или найти другого общего кода, но производительность и красивая анимация не будет легкими.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top