---
title: IMKCandidates
framework: InputMethodKit
role: symbol
role_heading: Class
platforms: [macOS 10.5+]
path: inputmethodkit/imkcandidates
---

# IMKCandidates

The IMKCandidates class presents candidates to users and notifies the appropriate IMKInputController object when the user selects a candidate. Candidates are alternate characters for a given input sequence. The IMKCandidates class supports using a candidates window  in your input method; using IMKCandidates is optional. Not all input methods require them.

## Declaration

```swift
class IMKCandidates
```

## Overview

Overview When you create an IMKCandidates object, you attach it to the IMKServer object for your input method.  You then need to override the IMKInputController methods candidateSelectionChanged: and candidateSelected: as well as implement a candidates method in your delegate object.  The IMKInputController subclass supplies candidates to the IMKCandidates object by implementing the candidates method. When you are ready to display a candidates window, call the candidates method to update candidates and to show the candidates window.

## Topics

### Initializing a Candidates Window

- [init(server:panelType:)](inputmethodkit/imkcandidates/init(server:paneltype:).md)

### Managing Selection Keys

- [setSelectionKeys(_:)](inputmethodkit/imkcandidates/setselectionkeys(_:).md)
- [selectionKeys()](inputmethodkit/imkcandidates/selectionkeys().md)
- [setSelectionKeysKeylayout(_:)](inputmethodkit/imkcandidates/setselectionkeyskeylayout(_:).md)
- [selectionKeysKeylayout()](inputmethodkit/imkcandidates/selectionkeyskeylayout().md)

### Managing Window Visibility and Behavior

- [show(_:)](inputmethodkit/imkcandidates/show(_:).md)
- [hide()](inputmethodkit/imkcandidates/hide().md)
- [isVisible()](inputmethodkit/imkcandidates/isvisible().md)
- [setDismissesAutomatically(_:)](inputmethodkit/imkcandidates/setdismissesautomatically(_:).md)
- [dismissesAutomatically()](inputmethodkit/imkcandidates/dismissesautomatically().md)
- [update()](inputmethodkit/imkcandidates/update().md)

### Managing Window Type and Text Attributes

- [panelType()](inputmethodkit/imkcandidates/paneltype().md)
- [setPanelType(_:)](inputmethodkit/imkcandidates/setpaneltype(_:).md)
- [setAttributes(_:)](inputmethodkit/imkcandidates/setattributes(_:).md)
- [attributes()](inputmethodkit/imkcandidates/attributes().md)

### Showing an Annotation Window

- [showAnnotation(_:)](inputmethodkit/imkcandidates/showannotation(_:).md)

### Constants

- [IMKCandidatePanelType](inputmethodkit/imkcandidatepaneltype.md)
- [IMKCandidatesLocationHint](inputmethodkit/imkcandidateslocationhint.md)

### Initializers

- [init(server:panelType:styleType:)](inputmethodkit/imkcandidates/init(server:paneltype:styletype:).md)

### Instance Methods

- [attachChild(_:toCandidate:type:)](inputmethodkit/imkcandidates/attachchild(_:tocandidate:type:).md)
- [candidateFrame()](inputmethodkit/imkcandidates/candidateframe().md)
- [candidateIdentifier(atLineNumber:)](inputmethodkit/imkcandidates/candidateidentifier(atlinenumber:).md)
- [candidateStringIdentifier(_:)](inputmethodkit/imkcandidates/candidatestringidentifier(_:).md)
- [clearSelection()](inputmethodkit/imkcandidates/clearselection().md)
- [detachChild(_:)](inputmethodkit/imkcandidates/detachchild(_:).md)
- [hideChild()](inputmethodkit/imkcandidates/hidechild().md)
- [lineNumberForCandidate(withIdentifier:)](inputmethodkit/imkcandidates/linenumberforcandidate(withidentifier:).md)
- [selectCandidate(_:)](inputmethodkit/imkcandidates/selectcandidate(_:).md)
- [selectCandidate(withIdentifier:)](inputmethodkit/imkcandidates/selectcandidate(withidentifier:).md)
- [selectedCandidate()](inputmethodkit/imkcandidates/selectedcandidate().md)
- [selectedCandidateString()](inputmethodkit/imkcandidates/selectedcandidatestring().md)
- [setCandidateData(_:)](inputmethodkit/imkcandidates/setcandidatedata(_:).md)
- [setCandidateFrameTopLeft(_:)](inputmethodkit/imkcandidates/setcandidateframetopleft(_:).md)
- [show()](inputmethodkit/imkcandidates/show().md)
- [showChild()](inputmethodkit/imkcandidates/showchild().md)
- [showSublist(_:subListDelegate:)](inputmethodkit/imkcandidates/showsublist(_:sublistdelegate:).md)

## Relationships

### Inherits From

- [NSResponder](appkit/nsresponder.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)

## See Also

### Classes

- [IMKInputController](inputmethodkit/imkinputcontroller.md)
- [IMKServer](inputmethodkit/imkserver.md)
