Construct and manage a graphical, event-driven user interface for your macOS app.


AppKit contains all the objects you need to implement the user interface for a macOS app—windows, panels, buttons, menus, scrollers, and text fields—and it handles all the details for you as it efficiently draws on the screen, communicates with hardware devices and screen buffers, clears areas of the screen before drawing, and clips views.

The framework also provides APIs you use to make your app accessible to users with disabilities (see Accessibility); to learn more about localizing your app for different languages, countries, or cultural regions, see Internationalization and Localization Guide.


First Steps

AppKit Release Notes for macOS 10.14

Update your apps to use new features, and test your apps against API changes.

App Structure

Core App

Learn about the objects that you use to interact with the system.

Data Management

Manage your app's data through file access and Cocoa bindings.

Resource Management

Manage the storyboards and nib files containing your app's user interface, and learn how to load data that is stored in resource files.

User Interface

Your app's user interface provides visual, audible, and tactile feedback to the user about what your app is doing.

Supporting Dark Mode in Your Interface

Adopt a dark appearance in addition to the standard light appearance.

Views and Controls

Present and define the interactions for your content onscreen.

View Management

Manage your user interface, including the size and position of views in a window.

Menus, Cursors, and the Dock

Implement menus and cursors to facilitate interactions with your app, and use your app's Dock tile to convey updated information.

Windows, Panels, and Screens

Organize your view hierarchies and facilitate their display onscreen.

Touch Bar

Display interactive content and controls in the Touch Bar.


Animate your views and other content to create a more engaging experience for users.

Sound, Speech, and Haptics

Play sounds and haptic feedback, and incorporate speech recognition and synthesis into your interface.

User Interactions

Mouse, Keyboard, and Trackpad

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


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.


Make your app more accessible to users with disabilities.

Graphics, Drawing, Color, and Printing

Images and PDF

Create and manage images, in bitmap, PDF, and other formats.


Draw shapes, images, and other content on the screen.


Represent colors using built-in or custom formats, and give users options for selecting and applying colors.


Display the system print panels and manage the printing process.


Text Display

Display text and check spelling.


Manage text storage and perform custom layout of text-based content in your app's views.


Manage the fonts used to display text.



Enumerations for use with multiple classes.


Functions and function-like macros for use with multiple classes.