<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSWindow/init(contentRect:styleMask:backing:defer:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSWindow(im)initWithContentRect:styleMask:backing:defer:"
  },
  "title" : "init(contentRect:styleMask:backing:defer:)"
}
-->

# init(contentRect:styleMask:backing:defer:)

Initializes the window with the specified values.

```
init(contentRect: NSRect, styleMask style: NSWindow.StyleMask, backing backingStoreType: NSWindow.BackingStoreType, defer flag: Bool)
```

## Parameters

`contentRect`

Origin and size of the window’s content area in screen coordinates. Note that the window server limits window position coordinates to ±16,000 and sizes to 10,000.

`style`

The window’s style. It can be `NSBorderlessWindowMask`, or it can contain any of the options described in [`NSWindow.StyleMask`](/documentation/AppKit/NSWindow/StyleMask-swift.struct), combined using the C bitwise OR operator. Borderless windows display none of the usual peripheral elements and are generally useful only for display or caching purposes; you should normally not need to create them. Also, note that a window’s style mask should include `NSTitledWindowMask` if it includes any of the others.

`backingStoreType`

Specifies how the drawing done in the window is buffered by the window device, and possible values are described in [`NSWindow.BackingStoreType`](/documentation/AppKit/NSWindow/BackingStoreType).

`flag`

Specifies whether the window server creates a window device for the window immediately. When <doc://com.apple.documentation/documentation/Swift/true>, the window server defers creating the window device until the window is moved onscreen. All display messages sent to the window or its views are postponed until the window is created, just before it’s moved onscreen.

## Return Value

The initialized window.

## Discussion

This method is the designated initializer for the `NSWindow` class.

Deferring the creation of the window improves launch time and minimizes the virtual memory load on the window server.

The new window creates a view to be its default content view. You can replace it with your own object by setting the [`contentView`](/documentation/AppKit/NSWindow/contentView) property.

> Warning: Swift and Automatic Reference Counting (ARC) clients need to set the ``doc://com.apple.appkit/documentation/AppKit/NSWindow/isReleasedWhenClosed`` property to <doc://com.apple.documentation/documentation/Swift/false> to avoid releasing the window too many times.

## See Also

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

A Boolean value that indicates whether the window device the window manages is freed when it’s removed from the screen list.

[`orderFront(_:)`](/documentation/AppKit/NSWindow/orderFront(_:))

Moves the window to the front of its level in the screen list, without changing either the key window or the main window.

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

A window that an app displays on the screen.



---

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)