---
title: NSWorkspace
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsworkspace
---

# NSWorkspace

A workspace that can launch other apps and perform a variety of file-handling services.

## Declaration

```swift
class NSWorkspace
```

## Mentioned in

Passing control from one app to another with cooperative activation

## Overview

Overview There is one shared NSWorkspace object per app. You use the class method shared to access it. For example, the following statement uses an NSWorkspace object to request that a file be opened in the TextEdit app: You can use the workspace object to: Open, manipulate, and get information about files and devices. Track changes to the file system, devices, and the user database. Get and set Finder information for files. Launch apps.

## Topics

### Accessing the Shared Workspace

- [shared](appkit/nsworkspace/shared.md)

### Accessing the Workspace Notification Center

- [notificationCenter](appkit/nsworkspace/notificationcenter.md)

### Opening URLs

- [open(_:configuration:completionHandler:)](appkit/nsworkspace/open(_:configuration:completionhandler:).md)
- [open(_:withApplicationAt:configuration:completionHandler:)](appkit/nsworkspace/open(_:withapplicationat:configuration:completionhandler:).md)
- [open(_:)](appkit/nsworkspace/open(_:).md)

### Launching and Hiding Apps

- [openApplication(at:configuration:completionHandler:)](appkit/nsworkspace/openapplication(at:configuration:completionhandler:).md)
- [hideOtherApplications()](appkit/nsworkspace/hideotherapplications().md)

### Managing Open Configurations

- [NSWorkspace.OpenConfiguration](appkit/nsworkspace/openconfiguration.md)

### Manipulating Files

- [duplicate(_:completionHandler:)](appkit/nsworkspace/duplicate(_:completionhandler:).md)
- [recycle(_:completionHandler:)](appkit/nsworkspace/recycle(_:completionhandler:).md)
- [activateFileViewerSelecting(_:)](appkit/nsworkspace/activatefileviewerselecting(_:).md)
- [selectFile(_:inFileViewerRootedAtPath:)](appkit/nsworkspace/selectfile(_:infileviewerrootedatpath:).md)

### Manipulating Uniform Type Identifier Information

- [type(ofFile:)](appkit/nsworkspace/type(offile:).md)
- [localizedDescription(forType:)](appkit/nsworkspace/localizeddescription(fortype:).md)
- [preferredFilenameExtension(forType:)](appkit/nsworkspace/preferredfilenameextension(fortype:).md)
- [filenameExtension(_:isValidForType:)](appkit/nsworkspace/filenameextension(_:isvalidfortype:).md)
- [type(_:conformsToType:)](appkit/nsworkspace/type(_:conformstotype:).md)

### Requesting Information

- [urlForApplication(toOpen:)](appkit/nsworkspace/urlforapplication(toopen:)-7qkzf.md)
- [urlForApplication(toOpen:)](appkit/nsworkspace/urlforapplication(toopen:)-95cvp.md)
- [urlForApplication(withBundleIdentifier:)](appkit/nsworkspace/urlforapplication(withbundleidentifier:).md)
- [urlsForApplications(toOpen:)](appkit/nsworkspace/urlsforapplications(toopen:)-ualk.md)
- [urlsForApplications(toOpen:)](appkit/nsworkspace/urlsforapplications(toopen:)-60rkm.md)
- [urlsForApplications(withBundleIdentifier:)](appkit/nsworkspace/urlsforapplications(withbundleidentifier:).md)
- [getFileSystemInfo(forPath:isRemovable:isWritable:isUnmountable:description:type:)](appkit/nsworkspace/getfilesysteminfo(forpath:isremovable:iswritable:isunmountable:description:type:).md)
- [isFilePackage(atPath:)](appkit/nsworkspace/isfilepackage(atpath:).md)
- [frontmostApplication](appkit/nsworkspace/frontmostapplication.md)
- [runningApplications](appkit/nsworkspace/runningapplications.md)
- [menuBarOwningApplication](appkit/nsworkspace/menubarowningapplication.md)
- [getInfoForFile(_:application:type:)](appkit/nsworkspace/getinfoforfile(_:application:type:).md)

### Setting Default Application Information

- [setDefaultApplication(at:toOpenFileAt:completion:)](appkit/nsworkspace/setdefaultapplication(at:toopenfileat:completion:).md)
- [setDefaultApplication(at:toOpen:completion:)](appkit/nsworkspace/setdefaultapplication(at:toopen:completion:).md)
- [setDefaultApplication(at:toOpenContentTypeOfFileAt:completion:)](appkit/nsworkspace/setdefaultapplication(at:toopencontenttypeoffileat:completion:).md)
- [setDefaultApplication(at:toOpenURLsWithScheme:completion:)](appkit/nsworkspace/setdefaultapplication(at:toopenurlswithscheme:completion:).md)

### Managing Icons

- [icon(forFile:)](appkit/nsworkspace/icon(forfile:).md)
- [icon(forFiles:)](appkit/nsworkspace/icon(forfiles:).md)
- [icon(for:)](appkit/nsworkspace/icon(for:).md)
- [setIcon(_:forFile:options:)](appkit/nsworkspace/seticon(_:forfile:options:).md)
- [NSWorkspace.IconCreationOptions](appkit/nsworkspace/iconcreationoptions.md)

### Unmounting a Device

- [unmountAndEjectDevice(atPath:)](appkit/nsworkspace/unmountandejectdevice(atpath:).md)
- [unmountAndEjectDevice(at:)](appkit/nsworkspace/unmountandejectdevice(at:).md)

### Managing the Desktop Image

- [desktopImageURL(for:)](appkit/nsworkspace/desktopimageurl(for:).md)
- [setDesktopImageURL(_:for:options:)](appkit/nsworkspace/setdesktopimageurl(_:for:options:).md)
- [desktopImageOptions(for:)](appkit/nsworkspace/desktopimageoptions(for:).md)
- [NSWorkspace.DesktopImageOptionKey](appkit/nsworkspace/desktopimageoptionkey.md)

### Performing Finder Spotlight Searches

- [showSearchResults(forQueryString:)](appkit/nsworkspace/showsearchresults(forquerystring:).md)

### Finder File Labels

- [fileLabels](appkit/nsworkspace/filelabels.md)
- [fileLabelColors](appkit/nsworkspace/filelabelcolors.md)

### Tracking Changes to the File System

- [noteFileSystemChanged(_:)](appkit/nsworkspace/notefilesystemchanged(_:).md)

### Requesting Additional Time Before Logout

- [extendPowerOff(by:)](appkit/nsworkspace/extendpoweroff(by:).md)

### Supporting Accessibility

- [accessibilityDisplayShouldDifferentiateWithoutColor](appkit/nsworkspace/accessibilitydisplayshoulddifferentiatewithoutcolor.md)
- [accessibilityDisplayShouldIncreaseContrast](appkit/nsworkspace/accessibilitydisplayshouldincreasecontrast.md)
- [accessibilityDisplayShouldReduceTransparency](appkit/nsworkspace/accessibilitydisplayshouldreducetransparency.md)
- [accessibilityDisplayShouldInvertColors](appkit/nsworkspace/accessibilitydisplayshouldinvertcolors.md)
- [accessibilityDisplayShouldReduceMotion](appkit/nsworkspace/accessibilitydisplayshouldreducemotion.md)
- [isSwitchControlEnabled](appkit/nsworkspace/isswitchcontrolenabled.md)
- [isVoiceOverEnabled](appkit/nsworkspace/isvoiceoverenabled.md)

### Performing Privileged Operations

- [requestAuthorization(to:completionHandler:)](appkit/nsworkspace/requestauthorization(to:completionhandler:).md)
- [NSWorkspace.Authorization](appkit/nsworkspace/authorization.md)
- [NSWorkspace.AuthorizationType](appkit/nsworkspace/authorizationtype.md)

### Responding to Environment Notifications

- [willLaunchApplicationNotification](appkit/nsworkspace/willlaunchapplicationnotification.md)
- [didLaunchApplicationNotification](appkit/nsworkspace/didlaunchapplicationnotification.md)
- [didTerminateApplicationNotification](appkit/nsworkspace/didterminateapplicationnotification.md)
- [sessionDidBecomeActiveNotification](appkit/nsworkspace/sessiondidbecomeactivenotification.md)
- [sessionDidResignActiveNotification](appkit/nsworkspace/sessiondidresignactivenotification.md)
- [didHideApplicationNotification](appkit/nsworkspace/didhideapplicationnotification.md)
- [didUnhideApplicationNotification](appkit/nsworkspace/didunhideapplicationnotification.md)
- [didActivateApplicationNotification](appkit/nsworkspace/didactivateapplicationnotification.md)
- [didDeactivateApplicationNotification](appkit/nsworkspace/diddeactivateapplicationnotification.md)
- [didRenameVolumeNotification](appkit/nsworkspace/didrenamevolumenotification.md)
- [didMountNotification](appkit/nsworkspace/didmountnotification.md)
- [willUnmountNotification](appkit/nsworkspace/willunmountnotification.md)
- [didUnmountNotification](appkit/nsworkspace/didunmountnotification.md)
- [didChangeFileLabelsNotification](appkit/nsworkspace/didchangefilelabelsnotification.md)
- [activeSpaceDidChangeNotification](appkit/nsworkspace/activespacedidchangenotification.md)
- [didWakeNotification](appkit/nsworkspace/didwakenotification.md)
- [willPowerOffNotification](appkit/nsworkspace/willpoweroffnotification.md)
- [willSleepNotification](appkit/nsworkspace/willsleepnotification.md)
- [screensDidSleepNotification](appkit/nsworkspace/screensdidsleepnotification.md)
- [screensDidWakeNotification](appkit/nsworkspace/screensdidwakenotification.md)
- [accessibilityDisplayOptionsDidChangeNotification](appkit/nsworkspace/accessibilitydisplayoptionsdidchangenotification.md)
- [localizedVolumeNameUserInfoKey](appkit/nsworkspace/localizedvolumenameuserinfokey.md)
- [volumeURLUserInfoKey](appkit/nsworkspace/volumeurluserinfokey.md)
- [oldLocalizedVolumeNameUserInfoKey](appkit/nsworkspace/oldlocalizedvolumenameuserinfokey.md)
- [oldVolumeURLUserInfoKey](appkit/nsworkspace/oldvolumeurluserinfokey.md)

### Deprecated

- [Deprecated Symbols](appkit/nsworkspace-deprecated-symbols.md)

### Structures

- [NSWorkspace.AccessibilityDisplayOptionsDidChangeMessage](appkit/nsworkspace/accessibilitydisplayoptionsdidchangemessage.md)
- [NSWorkspace.ActiveSpaceDidChangeMessage](appkit/nsworkspace/activespacedidchangemessage.md)
- [NSWorkspace.DidActivateApplicationMessage](appkit/nsworkspace/didactivateapplicationmessage.md)
- [NSWorkspace.DidChangeFileLabelsMessage](appkit/nsworkspace/didchangefilelabelsmessage.md)
- [NSWorkspace.DidDeactivateApplicationMessage](appkit/nsworkspace/diddeactivateapplicationmessage.md)
- [NSWorkspace.DidHideApplicationMessage](appkit/nsworkspace/didhideapplicationmessage.md)
- [NSWorkspace.DidLaunchApplicationMessage](appkit/nsworkspace/didlaunchapplicationmessage.md)
- [NSWorkspace.DidMountVolumeMessage](appkit/nsworkspace/didmountvolumemessage.md)
- [NSWorkspace.DidRenameVolumeMessage](appkit/nsworkspace/didrenamevolumemessage.md)
- [NSWorkspace.DidTerminateApplicationMessage](appkit/nsworkspace/didterminateapplicationmessage.md)
- [NSWorkspace.DidUnhideApplicationMessage](appkit/nsworkspace/didunhideapplicationmessage.md)
- [NSWorkspace.DidUnmountVolumeMessage](appkit/nsworkspace/didunmountvolumemessage.md)
- [NSWorkspace.DidWakeMessage](appkit/nsworkspace/didwakemessage.md)
- [NSWorkspace.ScreensDidSleepMessage](appkit/nsworkspace/screensdidsleepmessage.md)
- [NSWorkspace.ScreensDidWakeMessage](appkit/nsworkspace/screensdidwakemessage.md)
- [NSWorkspace.SessionDidBecomeActiveMessage](appkit/nsworkspace/sessiondidbecomeactivemessage.md)
- [NSWorkspace.SessionDidResignActiveMessage](appkit/nsworkspace/sessiondidresignactivemessage.md)
- [NSWorkspace.WillLaunchApplicationMessage](appkit/nsworkspace/willlaunchapplicationmessage.md)
- [NSWorkspace.WillSleepMessage](appkit/nsworkspace/willsleepmessage.md)
- [NSWorkspace.WillUnmountVolumeMessage](appkit/nsworkspace/willunmountvolumemessage.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)

## See Also

### Environment

- [NSWorkspace.OpenConfiguration](appkit/nsworkspace/openconfiguration.md)
- [NSAppKitVersion](appkit/nsappkitversion.md)
- [LSMinimumSystemVersion](bundleresources/information-property-list/lsminimumsystemversion.md)
