---
title: NSWindowDelegate
framework: appkit
role: symbol
role_heading: Protocol
path: appkit/nswindowdelegate
---

# 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.

## Declaration

```swift
protocol NSWindowDelegate : NSObjectProtocol
```

## Topics

### Managing Sheets

- [window(_:willPositionSheet:using:)](appkit/nswindowdelegate/window(_:willpositionsheet:using:).md)
- [windowWillBeginSheet(_:)](appkit/nswindowdelegate/windowwillbeginsheet(_:).md)
- [windowDidEndSheet(_:)](appkit/nswindowdelegate/windowdidendsheet(_:).md)

### Sizing Windows

- [windowWillResize(_:to:)](appkit/nswindowdelegate/windowwillresize(_:to:).md)
- [windowDidResize(_:)](appkit/nswindowdelegate/windowdidresize(_:).md)
- [windowWillStartLiveResize(_:)](appkit/nswindowdelegate/windowwillstartliveresize(_:).md)
- [windowDidEndLiveResize(_:)](appkit/nswindowdelegate/windowdidendliveresize(_:).md)

### Minimizing Windows

- [windowWillMiniaturize(_:)](appkit/nswindowdelegate/windowwillminiaturize(_:).md)
- [windowDidMiniaturize(_:)](appkit/nswindowdelegate/windowdidminiaturize(_:).md)
- [windowDidDeminiaturize(_:)](appkit/nswindowdelegate/windowdiddeminiaturize(_:).md)

### Zooming Window

- [windowWillUseStandardFrame(_:defaultFrame:)](appkit/nswindowdelegate/windowwillusestandardframe(_:defaultframe:).md)
- [windowShouldZoom(_:toFrame:)](appkit/nswindowdelegate/windowshouldzoom(_:toframe:).md)

### Managing Full-Screen Presentation

- [window(_:willUseFullScreenContentSize:)](appkit/nswindowdelegate/window(_:willusefullscreencontentsize:).md)
- [window(_:willUseFullScreenPresentationOptions:)](appkit/nswindowdelegate/window(_:willusefullscreenpresentationoptions:).md)
- [windowWillEnterFullScreen(_:)](appkit/nswindowdelegate/windowwillenterfullscreen(_:).md)
- [windowDidEnterFullScreen(_:)](appkit/nswindowdelegate/windowdidenterfullscreen(_:).md)
- [windowWillExitFullScreen(_:)](appkit/nswindowdelegate/windowwillexitfullscreen(_:).md)
- [windowDidExitFullScreen(_:)](appkit/nswindowdelegate/windowdidexitfullscreen(_:).md)

### Custom Full-Screen Presentation Animations

- [customWindowsToEnterFullScreen(for:)](appkit/nswindowdelegate/customwindowstoenterfullscreen(for:).md)
- [customWindowsToEnterFullScreen(for:on:)](appkit/nswindowdelegate/customwindowstoenterfullscreen(for:on:).md)
- [window(_:startCustomAnimationToEnterFullScreenWithDuration:)](appkit/nswindowdelegate/window(_:startcustomanimationtoenterfullscreenwithduration:).md)
- [window(_:startCustomAnimationToEnterFullScreenOn:withDuration:)](appkit/nswindowdelegate/window(_:startcustomanimationtoenterfullscreenon:withduration:).md)
- [windowDidFailToEnterFullScreen(_:)](appkit/nswindowdelegate/windowdidfailtoenterfullscreen(_:).md)
- [customWindowsToExitFullScreen(for:)](appkit/nswindowdelegate/customwindowstoexitfullscreen(for:).md)
- [window(_:startCustomAnimationToExitFullScreenWithDuration:)](appkit/nswindowdelegate/window(_:startcustomanimationtoexitfullscreenwithduration:).md)
- [windowDidFailToExitFullScreen(_:)](appkit/nswindowdelegate/windowdidfailtoexitfullscreen(_:).md)

### Moving Windows

- [windowWillMove(_:)](appkit/nswindowdelegate/windowwillmove(_:).md)
- [windowDidMove(_:)](appkit/nswindowdelegate/windowdidmove(_:).md)
- [windowDidChangeScreen(_:)](appkit/nswindowdelegate/windowdidchangescreen(_:).md)
- [windowDidChangeScreenProfile(_:)](appkit/nswindowdelegate/windowdidchangescreenprofile(_:).md)
- [windowDidChangeBackingProperties(_:)](appkit/nswindowdelegate/windowdidchangebackingproperties(_:).md)

### Closing Windows

- [windowShouldClose(_:)](appkit/nswindowdelegate/windowshouldclose(_:).md)
- [windowWillClose(_:)](appkit/nswindowdelegate/windowwillclose(_:).md)

### Managing Key Status

- [windowDidBecomeKey(_:)](appkit/nswindowdelegate/windowdidbecomekey(_:).md)
- [windowDidResignKey(_:)](appkit/nswindowdelegate/windowdidresignkey(_:).md)

### Managing Main Status

- [windowDidBecomeMain(_:)](appkit/nswindowdelegate/windowdidbecomemain(_:).md)
- [windowDidResignMain(_:)](appkit/nswindowdelegate/windowdidresignmain(_:).md)

### Managing Field Editors

- [windowWillReturnFieldEditor(_:to:)](appkit/nswindowdelegate/windowwillreturnfieldeditor(_:to:).md)

### Updating Windows

- [windowDidUpdate(_:)](appkit/nswindowdelegate/windowdidupdate(_:).md)

### Exposing Windows

- [windowDidExpose(_:)](appkit/nswindowdelegate/windowdidexpose(_:).md)

### Managing Occlusion State

- [windowDidChangeOcclusionState(_:)](appkit/nswindowdelegate/windowdidchangeocclusionstate(_:).md)

### Dragging Windows

- [window(_:shouldDragDocumentWith:from:with:)](appkit/nswindowdelegate/window(_:shoulddragdocumentwith:from:with:).md)

### Getting the Undo Manager

- [windowWillReturnUndoManager(_:)](appkit/nswindowdelegate/windowwillreturnundomanager(_:).md)

### Managing Titles

- [window(_:shouldPopUpDocumentPathMenu:)](appkit/nswindowdelegate/window(_:shouldpopupdocumentpathmenu:).md)

### Managing Restorable State

- [window(_:willEncodeRestorableState:)](appkit/nswindowdelegate/window(_:willencoderestorablestate:).md)
- [window(_:didDecodeRestorableState:)](appkit/nswindowdelegate/window(_:diddecoderestorablestate:).md)

### Managing Presentation in Version Browsers

- [window(_:willResizeForVersionBrowserWithMaxPreferredSize:maxAllowedSize:)](appkit/nswindowdelegate/window(_:willresizeforversionbrowserwithmaxpreferredsize:maxallowedsize:).md)
- [windowWillEnterVersionBrowser(_:)](appkit/nswindowdelegate/windowwillenterversionbrowser(_:).md)
- [windowDidEnterVersionBrowser(_:)](appkit/nswindowdelegate/windowdidenterversionbrowser(_:).md)
- [windowWillExitVersionBrowser(_:)](appkit/nswindowdelegate/windowwillexitversionbrowser(_:).md)
- [windowDidExitVersionBrowser(_:)](appkit/nswindowdelegate/windowdidexitversionbrowser(_:).md)

### Instance Methods

- [previewRepresentableActivityItems(for:)](appkit/nswindowdelegate/previewrepresentableactivityitems(for:).md)
- [windowForSharingRequest(from:)](appkit/nswindowdelegate/windowforsharingrequest(from:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Windows

- [NSWindow](appkit/nswindow.md)
- [NSPanel](appkit/nspanel.md)
- [NSWindowTab](appkit/nswindowtab.md)
- [NSWindowTabGroup](appkit/nswindowtabgroup.md)
