<!--
{
  "availability" : [
    "macOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreFoundation",
  "identifier" : "/documentation/CoreFoundation/CFUserNotificationReceiveResponse(_:_:_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Function",
  "symbol" : {
    "kind" : "Function",
    "modules" : [
      "Core Foundation"
    ],
    "preciseIdentifier" : "c:@F@CFUserNotificationReceiveResponse"
  },
  "title" : "CFUserNotificationReceiveResponse(_:_:_:)"
}
-->

# CFUserNotificationReceiveResponse(_:_:_:)

Waits for the user to respond to a notification or for the notification to time out.

```
func CFUserNotificationReceiveResponse(_ userNotification: CFUserNotification!, _ timeout: CFTimeInterval, _ responseFlags: UnsafeMutablePointer<CFOptionFlags>!) -> Int32
```

## Parameters

`userNotification`

The user notification to use.

`timeout`

The amount of time to wait for the user to respond to `userNotification` or for the notification to time out. If neither happens before `timeout` passes, this function returns a non-`0` value. If `timeout` is `0`, the function blocks until the user notification is dismissed.

`responseFlags`

On return, contains flags identifying how the notification was dismissed, the state of any checkboxes, and the selected element of the pop-up menu. Bits 0-1 of the value hold an identifier for the button pressed by the user (see [Response Codes](/documentation/CoreFoundation/1534504-response-codes)). Extract the identifier by performing a bitwise-AND operation with `0x3`. Bits 8-15 of `responseFlags` hold the state of up to 8 checkboxes or radio buttons, if present. Extract the flags by performing bitwise-AND operations with the return value of [`CFUserNotificationCheckBoxChecked(_:)`](/documentation/CoreFoundation/CFUserNotificationCheckBoxChecked(_:)). Bits 24-31 hold the index number of the element selected in a pop-up menu, if present. Extract the index by performing a 24-bit right shift: `responseFlags >> 24`.

## Return Value

`0` if the call successfully received a response; a non-`0` value otherwise.

## Discussion

Use this function to poll a user notification for a user response. You can call it any number of times on the same user notification.

To avoid polling and blocking your thread’s execution, you can create a run loop source for the user notification with [`CFUserNotificationCreateRunLoopSource(_:_:_:_:)`](/documentation/CoreFoundation/CFUserNotificationCreateRunLoopSource(_:_:_:_:)). You will then receive a callback when the dialog is dismissed.

---

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)