Для будущих гуглеров подкласс NSPopUpButton и:
private var colors: [NSColor]?
func setColors(_ colors: [NSColor]) {
self.colors = colors
self.reloadMenu()
}
private func reloadMenu(){
guard let colorsArray = colors else { return }
var image: NSImage
for index in 0..<itemArray.count {
image = NSImage(size: NSSize(width: 100, height: 13))
image.lockFocus()
let color = colorsArray[index]
color.setFill()
let path = NSBezierPath(rect: NSRect(x: 0, y: 0, width: 100, height: 13))
path.fill()
image.unlockFocus()
itemArray[index].image = image
}
self.synchronizeTitleAndSelectedItem()
self.display()
}