<!--
{
  "documentType" : "article",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/windows-panels-and-screens",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Windows, Panels, and Screens"
}
-->

# Windows, Panels, and Screens

Organize your view hierarchies and facilitate their display onscreen.

## Topics

### Windows

[`NSWindow`](/documentation/AppKit/NSWindow)

A window that an app displays on the screen.

[`NSPanel`](/documentation/AppKit/NSPanel)

A special kind of window that typically performs a function that is auxiliary to the main window.

[`NSWindowDelegate`](/documentation/AppKit/NSWindowDelegate)

A set of optional methods that a window’s delegate can implement to respond to events, such as window resizing, moving, exposing, and minimizing.

[`NSWindowTab`](/documentation/AppKit/NSWindowTab)

A tab associated with a window that is part of a tabbing group.

[`NSWindowTabGroup`](/documentation/AppKit/NSWindowTabGroup)

A group of windows that display together as a single tabbed window.

### Window Restoration

[Restoring your app’s state with AppKit](/documentation/AppKit/restoring-your-app-s-state-with-appkit)

Provide continuity for people using your app by preserving current activities on macOS.

[`NSWindowRestoration`](/documentation/AppKit/NSWindowRestoration)

A set of methods that restoration classes must implement to handle the recreation of windows.

[`NSUserInterfaceItemIdentification`](/documentation/AppKit/NSUserInterfaceItemIdentification)

A set of methods used to associate a unique identifier with objects in your user interface.

### Screens

[`NSScreen`](/documentation/AppKit/NSScreen)

An object that describes the attributes of a computer’s monitor or screen.

### Popovers

[`NSPopover`](/documentation/AppKit/NSPopover)

A means to display additional content related to existing content on the screen.

[`NSPopoverDelegate`](/documentation/AppKit/NSPopoverDelegate)

A set of optional methods that a popover delegate can implement to provide additional or custom functionality.

### Alerts

[`NSAlert`](/documentation/AppKit/NSAlert)

A modal dialog or sheet attached to a document window.

[`NSAlertDelegate`](/documentation/AppKit/NSAlertDelegate)

A set of optional methods implemented by the delegate of an [`NSAlert`](/documentation/AppKit/NSAlert) object to respond to a user’s request for help.

### Open and Save Panels

[`NSOpenPanel`](/documentation/AppKit/NSOpenPanel)

A panel that prompts the user to select a file to open.

[`NSSavePanel`](/documentation/AppKit/NSSavePanel)

A panel that prompts the user for information about where to save a file.

[`NSOpenSavePanelDelegate`](/documentation/AppKit/NSOpenSavePanelDelegate)

A set of methods for managing interactions with an open or save panel.

### Share Panel

[`NSSharingServicePicker`](/documentation/AppKit/NSSharingServicePicker)

A list of sharing services that the user can choose from.

[`NSPreviewRepresentableActivityItem`](/documentation/AppKit/NSPreviewRepresentableActivityItem)

An interface you adopt in custom objects that you want to share using the macOS share sheet.

[`NSPreviewRepresentingActivityItem`](/documentation/AppKit/NSPreviewRepresentingActivityItem)

A type that adds metadata to an item you share using the macOS share sheet.

### Print and PDF Panels

[`NSPDFPanel`](/documentation/AppKit/NSPDFPanel)

A Save or Export as PDF panel that’s consistent with the macOS user interface.

[`NSPrintPanelAccessorizing`](/documentation/AppKit/NSPrintPanelAccessorizing)

A set of methods that a Print panel object can use to get information from a printing accessory controller.

### Color Panels

[`NSColorPanel`](/documentation/AppKit/NSColorPanel)

A standard user interface for selecting color in an app.

[`NSColorPickingCustom`](/documentation/AppKit/NSColorPickingCustom)

A set of methods that provides a way to add color pickers—custom user interfaces for color selection—to an app’s color panel.

[`NSColorPickingDefault`](/documentation/AppKit/NSColorPickingDefault)

A set of methods that provides basic behavior for a color picker.

[`NSColorPicker`](/documentation/AppKit/NSColorPicker)

An abstract superclass that implements the default color picking protocol.

### Font Panels

[`NSFontPanel`](/documentation/AppKit/NSFontPanel)

The Font panel—a user interface object that displays a list of available fonts, letting the user preview them and change the font used to display text.

[`NSFontPanel.ModeMask`](/documentation/AppKit/NSFontPanel/ModeMask)

[NSFontPanelValidation](/documentation/AppKit/nsfontpanelvalidation)

A set of methods you use to tell the Font panel to display some or all of its elements.

[`NSFontChanging`](/documentation/AppKit/NSFontChanging)



---

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)