<!--
{
  "availability" : [
    "macOS: 10.4.0 - 10.15.0"
  ],
  "documentType" : "symbol",
  "framework" : "Quartz",
  "identifier" : "/documentation/Quartz/QCCompositionPickerView",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Quartz"
    ],
    "preciseIdentifier" : "c:objc(cs)QCCompositionPickerView"
  },
  "title" : "QCCompositionPickerView"
}
-->

# QCCompositionPickerView

The `QCCompositionPickerView` class allows users to browse compositions that are in the Quartz Composer composition repository, and to preview them. You can set the default input parameters for a composition preview  by using the method setDefaultValue:forInputKey:.

```
class QCCompositionPickerView
```

## Overview

Note that the composition picker view does not automatically refresh its content when the composition repository is updated. It’s your responsibility to perform any necessary updating.

## Topics

### Setting and Getting the Background Color

[`setBackgroundColor(_:)`](/documentation/Quartz/QCCompositionPickerView/setBackgroundColor(_:))

Sets the background color for the composition picker view.

[`backgroundColor()`](/documentation/Quartz/QCCompositionPickerView/backgroundColor())

Returns the background color of the composition picker view.

### Managing Background Drawing

[`setDrawsBackground(_:)`](/documentation/Quartz/QCCompositionPickerView/setDrawsBackground(_:))

Sets whether the composition picker view draws its background.

[`drawsBackground()`](/documentation/Quartz/QCCompositionPickerView/drawsBackground())

Returns whether the composition picker view draws its background.

### Setting Composition Input Parameters

[`setDefaultValue(_:forInputKey:)`](/documentation/Quartz/QCCompositionPickerView/setDefaultValue(_:forInputKey:))

Sets the default value to use for a composition input parameter.

[`resetDefaultInputValues()`](/documentation/Quartz/QCCompositionPickerView/resetDefaultInputValues())

Clears all previously set default values for composition input parameters.

### Managing Animation

[`startAnimation(_:)`](/documentation/Quartz/QCCompositionPickerView/startAnimation(_:))

Starts animating the composition in the composition picker view.

[`stopAnimation(_:)`](/documentation/Quartz/QCCompositionPickerView/stopAnimation(_:))

Stops animating the composition that is currently animating in the composition picker view.

[`isAnimating()`](/documentation/Quartz/QCCompositionPickerView/isAnimating())

Returns whether or not the composition picker view is currently animating its composition.

[`setMaxAnimationFrameRate(_:)`](/documentation/Quartz/QCCompositionPickerView/setMaxAnimationFrameRate(_:))

Sets the maximum frame rate for animating compositions.

[`maxAnimationFrameRate()`](/documentation/Quartz/QCCompositionPickerView/maxAnimationFrameRate())

Retrieves the maximum frame rate for animating compositions.

### Controlling Display of Composition Names

[`setShowsCompositionNames(_:)`](/documentation/Quartz/QCCompositionPickerView/setShowsCompositionNames(_:))

Enables  the display of composition names in the composition picker view.

[`showsCompositionNames()`](/documentation/Quartz/QCCompositionPickerView/showsCompositionNames())

Retrieves whether composition names can be shown in the composition picker view.

### Setting and Retrieving the View Delegate

[`setDelegate(_:)`](/documentation/Quartz/QCCompositionPickerView/setDelegate(_:))

Sets the composition picker view delegate.

[`delegate()`](/documentation/Quartz/QCCompositionPickerView/delegate())

Retrieves the composition picker view delegate.

### Managing the Composition Picker View

[`setCompositionsFromRepositoryWithProtocol(_:andAttributes:)`](/documentation/Quartz/QCCompositionPickerView/setCompositionsFromRepositoryWithProtocol(_:andAttributes:))

Sets the  compositions in the composition picker view  to those that match the specified criteria.

[`compositions()`](/documentation/Quartz/QCCompositionPickerView/compositions())

Returns the list of compositions that are currently in the composition picker view.

[`setAllowsEmptySelection(_:)`](/documentation/Quartz/QCCompositionPickerView/setAllowsEmptySelection(_:))

Sets whether to allow an empty selection in the composition picker view.

[`allowsEmptySelection()`](/documentation/Quartz/QCCompositionPickerView/allowsEmptySelection())

Retrieves the empty-selection state of the composition picker view.

[`setCompositionAspectRatio(_:)`](/documentation/Quartz/QCCompositionPickerView/setCompositionAspectRatio(_:))

Sets  the aspect ratio used to display compositions in the composition picker view.

[`compositionAspectRatio()`](/documentation/Quartz/QCCompositionPickerView/compositionAspectRatio())

Retrieves the aspect ratio used to display compositions in the composition picker  view.

[`setSelectedComposition(_:)`](/documentation/Quartz/QCCompositionPickerView/setSelectedComposition(_:))

Sets a composition as selected in the composition picker view.

[`selectedComposition()`](/documentation/Quartz/QCCompositionPickerView/selectedComposition())

Returns the composition that is currently selected in the composition picker view.

### Working with Columns and Rows

[`setNumberOfColumns(_:)`](/documentation/Quartz/QCCompositionPickerView/setNumberOfColumns(_:))

Sets the number of columns in the composition picker view.

[`numberOfColumns()`](/documentation/Quartz/QCCompositionPickerView/numberOfColumns())

Retrieves the number of columns in the composition picker view.

[`setNumberOfRows(_:)`](/documentation/Quartz/QCCompositionPickerView/setNumberOfRows(_:))

Sets the number of rows in the composition picker view.

[`numberOfRows()`](/documentation/Quartz/QCCompositionPickerView/numberOfRows())

Retrieves the number of rows in the composition picker view.

### Notifications

[`QCCompositionPickerViewDidSelectCompositionNotification`](/documentation/Quartz/QCCompositionPickerViewDidSelectCompositionNotification)

Posted when the user selects a composition in the picker view.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)