About Color Lists

An NSColorList is an ordered list of NSColor objects, identified by keys. Instances of NSColorList, or more simply, color lists, are used to manage named lists of color objects. The list-mode color picker of an NSColorPanel object uses instances of NSColorList to represent any lists of colors that come with the system, as well as any lists created by the user. An application can use NSColorList to manage document-specific color lists, which may be added to an application’s NSColorPanel object using its attachColorList: method.

An NSColorList object is similar to a dictionary object: A color object is added to, looked up in, and removed from the list by specifying its key, which is a string object. These keys are used to identify the colors in the list and are used to display the color to the user in the color panel. In addition, colors can be inserted at specified positions in the list.

The color list has a name, specified when you create the object using either the initWithName: or initWithName:fromFile: method.

Instances of NSColorList are created for all user-created color lists (those in the color panel) and various color catalogs available on the system.

An NSColorList object saves and retrieves its colors from files with the extension “.clr” in directories defined by a standard search path. To access all the color lists in the standard search path, use the availableColorLists method; this returns an array of NSColorList objects, from which you can retrieve the individual color lists by name.

The standard search path for color lists is:

The color lists returned by the availableColorLists method include color catalogs, made up of colors defined in the NSNamedColorSpace color space. One example is the System color list, which appears in the macOS color panel under the name “Developer.” Note, however, that not all named color lists are catalogs. In general, lists created at runtime with NSColor and NSColorList methods are not catalogs.

NSColorList reads color list files in several different formats; it saves color lists using the archiver API.

NSColorList posts an NSColorListDidChangeNotification when a color list is changed.