---
title: NSControl.Events
framework: appkit
role: symbol
role_heading: Structure
path: appkit/nscontrol/events
---

# NSControl.Events

A set of events that a control can report to its target.

## Declaration

```swift
struct Events
```

## Discussion

Discussion You set up a control to send an action message to a target object by associating both target and action with one or more control events. To do this, call addTarget(_:action:for:) on the control for each target-action pair you want to specify. let slider = NSSlider() slider.addTarget(self, action: #selector(sliderValueChanged), for: .valueChanged)

let button = NSButton() button.addTarget(self, action: #selector(buttonActivated), for: [.primaryActionTriggered, .menuActionTriggered]) Use tracking events to observe the progress of mouse interaction as it unfolds — for example, to respond to a drag in progress rather than only on completion. Use semantic events like valueChanged, primaryActionTriggered, or menuActionTriggered to respond to higher-level, input-device-independent meanings. applicationReserved is a range of bits available for app use.

## Topics

### Tracking events

- [trackingBegan](appkit/nscontrol/events/trackingbegan.md)
- [trackingRepeated](appkit/nscontrol/events/trackingrepeated.md)
- [trackingInside](appkit/nscontrol/events/trackinginside.md)
- [trackingOutside](appkit/nscontrol/events/trackingoutside.md)
- [trackingEntered](appkit/nscontrol/events/trackingentered.md)
- [trackingExited](appkit/nscontrol/events/trackingexited.md)
- [trackingEndedInside](appkit/nscontrol/events/trackingendedinside.md)
- [trackingEndedOutside](appkit/nscontrol/events/trackingendedoutside.md)
- [trackingCancelled](appkit/nscontrol/events/trackingcancelled.md)

### Semantic events

- [valueChanged](appkit/nscontrol/events/valuechanged.md)
- [primaryActionTriggered](appkit/nscontrol/events/primaryactiontriggered.md)
- [menuActionTriggered](appkit/nscontrol/events/menuactiontriggered.md)

### Aggregate events

- [allTrackingEvents](appkit/nscontrol/events/alltrackingevents.md)
- [allEvents](appkit/nscontrol/events/allevents.md)

### Reserved ranges

- [applicationReserved](appkit/nscontrol/events/applicationreserved.md)
- [systemReserved](appkit/nscontrol/events/systemreserved.md)

### Initializers

- [init(rawValue:)](appkit/nscontrol/events/init(rawvalue:).md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Equatable](swift/equatable.md)
- [ExpressibleByArrayLiteral](swift/expressiblebyarrayliteral.md)
- [OptionSet](swift/optionset.md)
- [RawRepresentable](swift/rawrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [SetAlgebra](swift/setalgebra.md)

## See Also

### Handling Control Events

- [addTarget(_:action:for:)](appkit/nscontrol/addtarget(_:action:for:).md)
- [removeTarget(_:action:for:)](appkit/nscontrol/removetarget(_:action:for:).md)
