Создание собственной комбинации виджета в Какао - PullRequest
2 голосов
/ 25 мая 2011

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

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

Как мне решить эту проблему?

Во-вторых, типичный разработчик какао использует внешние элементы управления?Есть ли репозиторий или список интересных внешних пользовательских элементов управления (коммерческих или бесплатных)?

1 Ответ

3 голосов
/ 25 мая 2011

Я хотел бы создать таблицу с изображениями и списком в ячейках

Уже существует NSImageCell и NSComboBoxCell.Вы уверены, что вам нужно сделать что-то другое?

Если проблема в том, что вам нужно изображение и поле со списком в той же самой ячейке , вам придется создать подкласс NSCell.В настоящее время табличные представления могут содержать только ячейки, а не представления, что усложняет вашу жизнь (поскольку понимание того, как работает рисование ячейки, является более сложным).Однако в Lion все изменится, поэтому, если вы подождете до тех пор, это станет проще!

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

Чем ваш пользовательский виджет отличается от простого размещения этих трех объектов в одном виде?

Вы можете написать свой собственный подкласс NSView.Когда он создан, он должен создать список, кнопку и комбинированный список и добавить их в качестве подпредставлений к себе.Ваш подкласс NSView должен обрабатывать логику их синхронизации или делать то, что вы от них хотите.Затем, чтобы использовать этот комбинированный элемент управления в Интерфейсном Разработчике, вы размещаете Custom View и устанавливаете его класс (крайняя правая вкладка инспектора) в свой подкласс NSView.?Множество людей из Windows понимают это неправильно.Поле со списком представляет собой комбинацию меню и текстового поля: оно позволяет пользователю вводить пользовательский текст, которого нет в меню.Если вам просто нужно раскрывающееся меню выбора (а пользователь не может ввести пользовательское), используйте NSPopupButton.

Во-вторых, типичный разработчик какао использует внешние элементы управления?

Да, иногда.Такие вещи, как BWToolkit могут быть очень полезны.Есть намного больше, которые просто плавают вокруг списков рассылки как фрагментов кода, а не очищаются и помещаются в библиотеку.Ищите, что вам нужно сделать!

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