---
title: NSScreen
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsscreen
---

# NSScreen

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

## Declaration

```swift
class NSScreen
```

## Overview

Overview An app may use an NSScreen object to retrieve information about a screen and use this information to decide what to display on that screen. For example, an app may use the deepest method to find out which of the available screens can best represent color and then might choose to display all of its windows on that screen. Create the application object before you use the methods in this class, so that the application object can make the necessary connection to the window system. You can make sure the application object exists by invoking the shared method of NSApplication. If you created your app with Xcode, the application object is automatically created for you during initialization. note: The NSScreen class is only for getting information about the available displays. If you need additional information or want to change the attributes relating to a display, you must use Quartz Services. For more information, see Quartz Display Services.

## Topics

### Getting Screen Objects

- [main](appkit/nsscreen/main.md)
- [deepest](appkit/nsscreen/deepest.md)
- [screens](appkit/nsscreen/screens.md)

### Getting Screen Information

- [depth](appkit/nsscreen/depth.md)
- [frame](appkit/nsscreen/frame.md)
- [supportedWindowDepths](appkit/nsscreen/supportedwindowdepths.md)
- [deviceDescription](appkit/nsscreen/devicedescription.md)
- [NSDeviceDescriptionKey](appkit/nsdevicedescriptionkey.md)
- [colorSpace](appkit/nsscreen/colorspace.md)
- [localizedName](appkit/nsscreen/localizedname.md)
- [canRepresent(_:)](appkit/nsscreen/canrepresent(_:).md)
- [NSDisplayGamut](appkit/nsdisplaygamut.md)
- [screensHaveSeparateSpaces](appkit/nsscreen/screenshaveseparatespaces.md)

### Converting Between Screen and Backing Coordinates

- [backingAlignedRect(_:options:)](appkit/nsscreen/backingalignedrect(_:options:).md)
- [backingScaleFactor](appkit/nsscreen/backingscalefactor.md)
- [convertRectFromBacking(_:)](appkit/nsscreen/convertrectfrombacking(_:).md)
- [convertRectToBacking(_:)](appkit/nsscreen/convertrecttobacking(_:).md)

### Getting the Visible Portion of the Screen

- [visibleFrame](appkit/nsscreen/visibleframe.md)
- [safeAreaInsets](appkit/nsscreen/safeareainsets.md)
- [auxiliaryTopLeftArea](appkit/nsscreen/auxiliarytopleftarea-uglc.md)
- [auxiliaryTopRightArea](appkit/nsscreen/auxiliarytoprightarea-gr2n.md)

### Getting Extended Dynamic Range Details

- [maximumPotentialExtendedDynamicRangeColorComponentValue](appkit/nsscreen/maximumpotentialextendeddynamicrangecolorcomponentvalue.md)
- [maximumExtendedDynamicRangeColorComponentValue](appkit/nsscreen/maximumextendeddynamicrangecolorcomponentvalue.md)
- [maximumReferenceExtendedDynamicRangeColorComponentValue](appkit/nsscreen/maximumreferenceextendeddynamicrangecolorcomponentvalue.md)

### Getting Variable Refresh Rate Details

- [maximumFramesPerSecond](appkit/nsscreen/maximumframespersecond.md)
- [minimumRefreshInterval](appkit/nsscreen/minimumrefreshinterval.md)
- [maximumRefreshInterval](appkit/nsscreen/maximumrefreshinterval.md)
- [displayUpdateGranularity](appkit/nsscreen/displayupdategranularity.md)
- [lastDisplayUpdateTimestamp](appkit/nsscreen/lastdisplayupdatetimestamp.md)

### Receiving Screen-Related Notifications

- [colorSpaceDidChangeNotification](appkit/nsscreen/colorspacedidchangenotification.md)

### Synchronizing with the display’s refresh rate

- [displayLink(target:selector:)](appkit/nsscreen/displaylink(target:selector:).md)

### Structures

- [NSScreen.ColorSpaceDidChangeMessage](appkit/nsscreen/colorspacedidchangemessage.md)
- [NSScreen.TouchCapabilities](appkit/nsscreen/touchcapabilities-swift.struct.md)

### Instance Properties

- [cgDirectDisplayID](appkit/nsscreen/cgdirectdisplayid-8ph5i.md)
- [touchCapabilities](appkit/nsscreen/touchcapabilities-swift.property.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
