---
title: WKInterfacePicker
framework: watchkit
role: symbol
role_heading: Class
path: watchkit/wkinterfacepicker
---

# WKInterfacePicker

An interface element that presents a scrolling list of items for the user to choose from.

## Declaration

```swift
class WKInterfacePicker
```

## Overview

Overview The picker presents one or more WKPickerItem objects to the user. These Items may consist of text, images, or a combination of the two. The user interacts with a picker by tapping it, using the crown to scroll through items, and tapping again to select an item. A single interface controller may contain multiple pickers, each with its own set of items. Pickers can be configured to display items using one of several styles: List. Displays a vertically stacked list of items. Each item contains a title and an optional accessory image. If you supply a content image, that image is displayed behind the title and accessory image. Multiple items may be onscreen at once and turning the crown navigates vertically through the list of items. Stacked. Displays items as a stack of cards that animate in from the bottom of the picker. Each item in the list displays an image. Turning the crown animates the new card onscreen while animating the old card offscreen. Image Sequence. Displays a single image from a sequence of images. Each item in the list represents the previous or next item in the sequence. Turning the crown displays the previous or next image in the sequence without animations. When the user selects a new value, WatchKit calls the picker’s action method to report that new value. The format of the picker’s action method is as follows: Declare a method of this form in the interface controller class used to receive the picker’s new value. You can change the method name to anything you like. When configuring the picker in Xcode, connect its selector to your custom action method. The parameter represents the index of the item in the array of items you specified when calling the setItems(_:) method. Do not subclass or create instances of this class yourself. Instead, define outlets in your interface controller class and connect them to the corresponding objects in your storyboard file. For example, to refer to a picker object in your interface, define a property with the following syntax in your interface controller class: During the initialization of your interface controller, WatchKit creates a new instance of this class and assigns it to your outlet. At that point, you can use the object in your outlet to make changes to the onscreen picker. Interface Builder Configuration Options Xcode lets you configure information about your picker interface object in your storyboard file. The following table lists the attributes you can configure and their meaning.  |   |   |   |   |

## Topics

### Managing the Picker Contents

- [setItems(_:)](watchkit/wkinterfacepicker/setitems(_:).md)
- [WKPickerItem](watchkit/wkpickeritem.md)
- [setSelectedItemIndex(_:)](watchkit/wkinterfacepicker/setselecteditemindex(_:).md)
- [setCoordinatedAnimations(_:)](watchkit/wkinterfacepicker/setcoordinatedanimations(_:).md)

### Managing Input from the Digital Crown

- [focus()](watchkit/wkinterfacepicker/focus().md)
- [resignFocus()](watchkit/wkinterfacepicker/resignfocus().md)

### Enabling and Disabling the Picker

- [setEnabled(_:)](watchkit/wkinterfacepicker/setenabled(_:).md)

## Relationships

### Inherits From

- [WKInterfaceObject](watchkit/wkinterfaceobject.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Containers

- [WKInterfaceGroup](watchkit/wkinterfacegroup.md)
- [WKInterfaceSeparator](watchkit/wkinterfaceseparator.md)
- [WKInterfaceTable](watchkit/wkinterfacetable.md)
