Подтвердить что ты не робот

Cocoa Пользовательские виджеты/элементы управления OSX

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

Я вижу много замечательных элементов управления, например, в приложении Reeder или воробьях и т.д. Например:

Sparrow

Левая сторона - это сбрасываемое меню, которое включает анимацию и т.д. Как я могу достичь чего-то подобного? Я думал об использовании WebView + HTML + JavaScript, но это не похоже на очень оптимизированное решение.

4b9b3361

Ответ 1

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

Когда вы просмотрели взгляды, перейдите к пользовательским элементам управления. Большинство элементов управления работают примерно одинаково. Пользователь прикасается к ним, и управление отвечает: а) отслеживанием ввода пользователя, б) изменением его значения, в) отправкой сообщения о действии в свою цель и d) предоставлением пользователю некоторой обратной связи путем перерисовки. Чтобы начать работу, сначала убедитесь, что вы знаете, как использовать элементы управления. Чтение Темы управления и сотового программирования должно помочь, а раздел под названием Подклассификация NSControl охватывает (очевидно) создание собственных подклассы.

Пример, который вы предоставили, довольно ясно Apple Mail.app. Вид в левой части окна может быть экземпляром NSOutlineView, или это может быть пользовательский класс. В любом случае NSOutlineView станет хорошей отправной точкой, если вы хотите дублировать эту функциональность. NSOutlineView является подклассом NSTableView, который, в свою очередь, является подклассом NSControl, который, в свою очередь, является подклассом NSView. Прочтите Контекстно-ориентированные темы программирования, чтобы начать работу - таблицы и схемы чрезвычайно полезны, но также более сложны в использовании, чем базовые элементы управления, такие как кнопки и текстовые поля.

Ответ 2

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

Вы можете проверить это на Github:
https://github.com/iluuu1994/ITSidebar