Swiftpack.co - Package - ChimeHQ/WindowTreatment

Carthage compatible


WindowTreatment is a small set of classes and extensions to aid in working with NSWindow and its associated functions.



You can use Carthage to intall this as a static library. However, because the library relies on Objective-C categories to extend AppKit classes, you must include "-ObjC" in your OTHER_LDFLAGS setting.

github "ChimeHQ/WindowTreatment"

Swift Package Manager:

dependencies: [
        .package(url: "https://github.com/ChimeHQ/WindowTreatment.git")



A simple container view that makes it much easier to correctly position content under the titlebar of a host NSWindow. This turns out to be a fair esoteric thing to do, but can be essential when your NSWindow has a transparent titlebar.

let titlebarAwareView = WindowTitlebarAwareView()

// myView will always be correctly position below the containing window's
// titlebar region, and react accordingly if the titlebar size/state changes

titlebarAwareView.contentView = myView
// ...


A wrapper controller useful in cases where you need to use WindowTitlebarAwareView with a system that only accepts NSViewControllers, like NSSplitViewController.


Convenience wrappers around observation of NSWindow states like key and main. Very useful for UI changes in response to these changes.


Super-simple class that uses WindowStateObserver and provides a nice base for NSView subclasses that need to change their appearance depending on host window state.


A class that tracks changes in the application's windows, simplifying logic that depends on the state of all windows.

NSWindow Extensions

Sizing conveniences:

// simple method to size a window to pleasing dimensions relative to its screen


Title bar transparency helpers:

window.titlebarTransparentWithFullSizeContent = true

window.usesFullSizeContentView = true

NSView Extensions

Window state:


Suggestions or Feedback

We'd love to hear from you! Get in touch via twitter, an issue, or a pull request.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.


Stars: 22
Help us keep the lights on


Used By

Total: 0


1.2.3 - Nov 8, 2019

  • windowIsOnActiveSpace
  • ApplicationWindowState

1.2.1 - Aug 28, 2019

Includes some expanded documentation.

1.2 - May 30, 2019

  • SwiftPM support
  • Some improvements to WindowStateAwareView

1.1 - May 29, 2019

Now includes two new classes for NSWindow state observation. Very handy for NSView subclasses that need to change their UI/behavior depending on host window state.

1.0 - May 10, 2019

Initial Release!