---
title: "beginSheetModal(for:modalDelegate:didEnd:contextInfo:)"
framework: IOBluetooth UI
role: symbol
role_heading: Instance Method
platforms: [macOS 10.2+]
path: "iobluetoothui/iobluetoothdeviceselectorcontroller/beginsheetmodal(for:modaldelegate:didend:contextinfo:)"
---

# beginSheetModal(for:modalDelegate:didEnd:contextInfo:)

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

## Declaration

```swift
func beginSheetModal(for sheetWindow: NSWindow!, modalDelegate: Any!, didEnd didEndSelector: Selector!, contextInfo: UnsafeMutableRawPointer!) -> IOReturn
```

## Parameters

- `sheetWindow`: NSWindow to attach the device selector panel to as a sheet.
- `modalDelegate`: Delegate object that gets sent the didEndSelector when the sheet modal session is finished.
- `didEndSelector`: Selector sent to the modalDelegate when the sheet modal session is finished.
- `contextInfo`: User-definied value passed to the modalDelegate in the didEndSelector.

## Return Value

Return Value Returns kIOReturnSuccess if the sheet modal session was started.

## Discussion

Discussion This function works the same way as -[NSApplication beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:]. The didEndSelector has a similar prototype as in NSApplication except that the first argument is the IOBluetoothDeviceSelectorController object instead of the window: -(void)sheetDidEnd:(IOBluetoothDeviceSelectorController *)controller returnCode:(int)returnCode contextInfo:(void *)contextInfo. The returnCode parameter will either be kIOBluetoothUISuccess or kIOBluetoothUIUserCancelledErr as described in -runModal. NOTE: This method is only available in macOS 10.2.4 (Bluetooth v1.1) or later.

## See Also

### Instance Methods

- [addAllowedUUID(_:)](iobluetoothui/iobluetoothdeviceselectorcontroller/addalloweduuid(_:).md)
- [addAllowedUUIDArray(_:)](iobluetoothui/iobluetoothdeviceselectorcontroller/addalloweduuidarray(_:).md)
- [clearAllowedUUIDs()](iobluetoothui/iobluetoothdeviceselectorcontroller/clearalloweduuids().md)
- [getCancel()](iobluetoothui/iobluetoothdeviceselectorcontroller/getcancel().md)
- [getDescriptionText()](iobluetoothui/iobluetoothdeviceselectorcontroller/getdescriptiontext().md)
- [getHeader()](iobluetoothui/iobluetoothdeviceselectorcontroller/getheader().md)
- [getOptions()](iobluetoothui/iobluetoothdeviceselectorcontroller/getoptions().md)
- [getPrompt()](iobluetoothui/iobluetoothdeviceselectorcontroller/getprompt().md)
- [getResults()](iobluetoothui/iobluetoothdeviceselectorcontroller/getresults().md)
- [getSearchAttributes()](iobluetoothui/iobluetoothdeviceselectorcontroller/getsearchattributes().md)
- [getTitle()](iobluetoothui/iobluetoothdeviceselectorcontroller/gettitle().md)
- [runModal()](iobluetoothui/iobluetoothdeviceselectorcontroller/runmodal().md)
- [setCancel(_:)](iobluetoothui/iobluetoothdeviceselectorcontroller/setcancel(_:).md)
- [setDescriptionText(_:)](iobluetoothui/iobluetoothdeviceselectorcontroller/setdescriptiontext(_:).md)
- [setHeader(_:)](iobluetoothui/iobluetoothdeviceselectorcontroller/setheader(_:).md)
