<!--
{
  "availability" : [
    "macOS: 10.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "IOBluetoothUI",
  "identifier" : "/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "IOBluetooth UI"
    ],
    "preciseIdentifier" : "c:objc(cs)IOBluetoothDeviceSelectorController"
  },
  "title" : "IOBluetoothDeviceSelectorController"
}
-->

# IOBluetoothDeviceSelectorController

A NSWindowController subclass to display a window to initiate pairing to other bluetooth devices.

```
class IOBluetoothDeviceSelectorController
```

## Overview

Implementation of a window controller to return a NSArray of selected bluetooth devices. This class will handle connecting to the Bluetooth Daemon for the purposes of searches, and displaying the results. This controller will return a NSArray of IOBluetoothDevice objects to the user.

## Topics

### Instance Methods

[`-  addAllowedUUID:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/addAllowedUUID(_:))

Adds a UUID to the list of UUIDs that are used to validate the user’s selection.

[`-  addAllowedUUIDArray:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/addAllowedUUIDArray(_:))

Adds an array of UUIDs to the list of UUIDs that are used to validate the user’s selection.

[`-  beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/beginSheetModal(for:modalDelegate:didEnd:contextInfo:))

Runs the device selector panel as a sheet on the target window.

[`-  clearAllowedUUIDs`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/clearAllowedUUIDs())

Resets the controller back to the default state where it will accept any device the user selects.

[`-  getCancel`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getCancel())

Returns the title of the default/cancel button in the device selector panel.

[`-  getDescriptionText`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getDescriptionText())

Returns the description text that appears in the device selector panel.

[`-  getHeader`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getHeader())

Returns the header text that appears in the device selector panel.

[`-  getOptions`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getOptions())

Returns the option bits that control the panel’s behavior.

[`-  getPrompt`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getPrompt())

Returns the title of the default/select button in the device selector panel.

[`-  getResults`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getResults())

Returns the result of the user’s selection.

[`-  getSearchAttributes`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getSearchAttributes())

Returns the search attributes that control the panel’s search/inquiry behavior.

[`-  getTitle`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/getTitle())

Returns the title of the device selector panel.

[`-  runModal`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/runModal())

Runs the device selector panel in a modal session to allow the user to select a Bluetooth device.

[`-  setCancel:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/setCancel(_:))

Sets the title of the default/cancel button in the device selector panel.

[`-  setDescriptionText:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/setDescriptionText(_:))

Sets the description text that appears in the device selector panel.

[`-  setHeader:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/setHeader(_:))

Sets the header text that appears in the device selector panel.

[`-  setOptions:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/setOptions(_:))

Sets the option bits that control the panel’s behavior.

[`-  setPrompt:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/setPrompt(_:))

Sets the title of the default/select button in the device selector panel.

[`-  setSearchAttributes:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/setSearchAttributes(_:))

Sets the search attributes that control the panel’s search/inquiry behavior.

[`-  setTitle:`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/setTitle(_:))

Sets the title of the panel when not run as a sheet.

### Type Methods

[`+  deviceSelector`](/documentation/IOBluetoothUI/IOBluetoothDeviceSelectorController/deviceSelector())

## Relationships

### Conforms To

[`NSTouchBarProvider`](/documentation/AppKit/NSTouchBarProvider)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`NSStandardKeyBindingResponding`](/documentation/AppKit/NSStandardKeyBindingResponding)

[`Sendable`](/documentation/Swift/Sendable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSUserActivityRestoring`](/documentation/AppKit/NSUserActivityRestoring)

[`Hashable`](/documentation/Swift/Hashable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`NSSeguePerforming`](/documentation/AppKit/NSSeguePerforming)

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

### Inherits From

[`NSWindowController`](/documentation/AppKit/NSWindowController)

---

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)