---
title: "tokenField(_:completionsForSubstring:indexOfToken:indexOfSelectedItem:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nstokenfielddelegate/tokenfield(_:completionsforsubstring:indexoftoken:indexofselecteditem:)"
---

# tokenField(_:completionsForSubstring:indexOfToken:indexOfSelectedItem:)

Allows the delegate to provide an array of appropriate completions for the contents of the receiver.

## Declaration

```swift
@MainActor optional func tokenField(_ tokenField: NSTokenField, completionsForSubstring substring: String, indexOfToken tokenIndex: Int, indexOfSelectedItem selectedIndex: UnsafeMutablePointer<Int>?) -> [Any]?
```

## Parameters

- `tokenField`: The token field where editing is occurring.
- `substring`: The partial string that is to be completed.
- `tokenIndex`: The index of the token being edited.
- `selectedIndex`: Optionally, you can return by-reference an index into the returned array that specifies which of the completions should be initially selected. If none are to be selected, return by reference -1.

## Return Value

Return Value An array of strings that are possible completions.

## Discussion

Discussion If the delegate does not implement this method, no completions are provided.

## See Also

### Editing a Tokenized Strings

- [tokenField(_:editingStringForRepresentedObject:)](appkit/nstokenfielddelegate/tokenfield(_:editingstringforrepresentedobject:).md)
- [tokenField(_:representedObjectForEditing:)](appkit/nstokenfielddelegate/tokenfield(_:representedobjectforediting:).md)
- [tokenField(_:shouldAdd:at:)](appkit/nstokenfielddelegate/tokenfield(_:shouldadd:at:).md)
