Вы должны действительно использовать NSColorWell вместо того, чтобы создавать свое собственное. Одна из причин, по которой Apple имеет лучший графический интерфейс, чем у других платформ (особенно Linux), заключается в том, что разработчики используют стандартные компоненты для подобных вещей. Аргументы типа «потому что я думаю, что это делает интерфейс более лаконичным», являются причинами, почему GIMP является таким ярким примером того, как не разрабатывать графический интерфейс.
Тем не менее, в основном вы пытаетесь определить динамическое меню, а не список фиксированного размера (как это можно сделать в InterfaceBuilder). Вы можете сделать это с помощью классов NSMenu и NSMenuItem.
Руководство по документации MenuList
То, что вам нужно сделать, это вместо отображения меню по требованию, это заполнить его, когда приложение запустится с массивом по умолчанию. Затем, когда массив изменяется (через объекты вашей модели), инициируйте пересоздание меню. Также можно перехватить меню с помощью menuNeedsUpdate: message.