---
title: Event Handling
framework: appkit
role: collectionGroup
role_heading: API Collection
path: appkit/event-handling
---

# Event Handling

Respond to mouse, keyboard, touch, and tablet events and gestures that originate inside your view.

## Topics

### Handling Events in the View

- [acceptsFirstMouse(for:)](appkit/nsview/acceptsfirstmouse(for:).md)
- [hitTest(_:)](appkit/nsview/hittest(_:).md)
- [isMousePoint(_:in:)](appkit/nsview/ismousepoint(_:in:).md)
- [performKeyEquivalent(with:)](appkit/nsview/performkeyequivalent(with:).md)
- [rightMouseDown(with:)](appkit/nsresponder/rightmousedown(with:).md)
- [mouseDownCanMoveWindow](appkit/nsview/mousedowncanmovewindow.md)
- [inputContext](appkit/nsview/inputcontext.md)

### Handling Touch Events

- [allowedTouchTypes](appkit/nsview/allowedtouchtypes.md)
- [wantsRestingTouches](appkit/nsview/wantsrestingtouches.md)
- [candidateListTouchBarItem](appkit/nsview/candidatelisttouchbaritem.md)

### Managing Gesture Recognizers

- [gestureRecognizers](appkit/nsview/gesturerecognizers.md)
- [addGestureRecognizer(_:)](appkit/nsview/addgesturerecognizer(_:).md)
- [removeGestureRecognizer(_:)](appkit/nsview/removegesturerecognizer(_:).md)

### Managing the Key-View Loop

- [canBecomeKeyView](appkit/nsview/canbecomekeyview.md)
- [needsPanelToBecomeKey](appkit/nsview/needspaneltobecomekey.md)
- [nextKeyView](appkit/nsview/nextkeyview.md)
- [nextValidKeyView](appkit/nsview/nextvalidkeyview.md)
- [previousKeyView](appkit/nsview/previouskeyview.md)
- [previousValidKeyView](appkit/nsview/previousvalidkeyview.md)

### Handling Smart Magnification

- [rectForSmartMagnification(at:in:)](appkit/nsview/rectforsmartmagnification(at:in:).md)

### Managing Tracking Areas

- [addTrackingArea(_:)](appkit/nsview/addtrackingarea(_:).md)
- [removeTrackingArea(_:)](appkit/nsview/removetrackingarea(_:).md)
- [trackingAreas](appkit/nsview/trackingareas.md)
- [updateTrackingAreas()](appkit/nsview/updatetrackingareas().md)
- [didUpdateTrackingAreasNotification](appkit/nsview/didupdatetrackingareasnotification.md)

### Managing Tracking Rectangles

- [addTrackingRect(_:owner:userData:assumeInside:)](appkit/nsview/addtrackingrect(_:owner:userdata:assumeinside:).md)
- [removeTrackingRect(_:)](appkit/nsview/removetrackingrect(_:).md)
- [NSView.TrackingRectTag](appkit/nsview/trackingrecttag.md)

### Scrolling the View

- [prepareContent(in:)](appkit/nsview/preparecontent(in:).md)
- [preparedContentRect](appkit/nsview/preparedcontentrect.md)
- [scroll(_:)](appkit/nsview/scroll(_:).md)
- [scrollToVisible(_:)](appkit/nsview/scrolltovisible(_:).md)
- [autoscroll(with:)](appkit/nsview/autoscroll(with:).md)
- [adjustScroll(_:)](appkit/nsview/adjustscroll(_:).md)
- [enclosingScrollView](appkit/nsview/enclosingscrollview.md)
- [scroll(_:to:)](appkit/nsview/scroll(_:to:).md)
- [reflectScrolledClipView(_:)](appkit/nsview/reflectscrolledclipview(_:).md)
- [isCompatibleWithResponsiveScrolling](appkit/nsview/iscompatiblewithresponsivescrolling.md)

### Configuring Pressure

- [pressureConfiguration](appkit/nsview/pressureconfiguration.md)

### Dragging Operations

- [registerForDraggedTypes(_:)](appkit/nsview/registerfordraggedtypes(_:).md)
- [unregisterDraggedTypes()](appkit/nsview/unregisterdraggedtypes().md)
- [registeredDraggedTypes](appkit/nsview/registereddraggedtypes.md)
- [beginDraggingSession(with:event:source:)](appkit/nsview/begindraggingsession(with:event:source:).md)
- [beginDraggingSession(items:gesture:source:)](appkit/nsview/begindraggingsession(items:gesture:source:).md)
- [shouldDelayWindowOrdering(for:)](appkit/nsview/shoulddelaywindowordering(for:).md)
