Mouse, Keyboard, and Trackpad

Handle events related to mouse, keyboard, and trackpad input.

Overview

The NSResponder class defines the responder chain, an ordered list of objects that respond to user events. When the user clicks the mouse button, taps on the trackpad, or presses a key, an event is generated and passed up the responder chain in search of an object that can respond to it. Any object that handles events must inherit from the NSResponder class. The core AppKit classes, NSApplication, NSWindow, and NSView, inherit from NSResponder.

An NSApplication object maintains a list of NSWindow objects—one for each window belonging to the app—and each NSWindow object maintains a hierarchy of NSView objects. This view hierarchy is used for both drawing the user interface and for handling events.

An NSWindow object handles window-level events and distributes other events to its views. An NSWindow object also has a delegate allowing you to customize its behavior.

Topics

First Steps

NSResponder

An abstract class that forms the basis of event and command processing in AppKit.

Mouse, Keyboard, and Touch Events

NSEvent

An object that contains information about an input action such as a mouse click or a key press.

NSTouch

A snapshot of a particular touch at an instant in time.

Trackpad

NSPressureConfiguration

An encapsulation of the behavior and progression of a Force Touch trackpad as it responds to specific events.

NSHapticFeedbackManager

An object that provides access to the haptic feedback management attributes on a system with a Force Touch trackpad.

Constants

NSEventMask

Constants that are masks for the events defined in NSEventType.

NSEventPhase

Constants that represent the possible phases during an event phase.

NSEventSwipeTrackingOptions

Constants that specify swipe-tracking options.

See Also

User Interactions

Gestures

Encapsulate your app's event-handling logic in gesture recognizers so that you can reuse that code throughout your app.

Drag and Drop

Support the direct manipulation of your app's content using drag and drop.

Accessibility

Make your app more accessible to users with disabilities.