Skip to content

Programmatically constructing an NSToolbar

License

Notifications You must be signed in to change notification settings

adamdahan/toolbar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

toolbar (NSToolbar example)

Programmatically constructing an NSToolbar (AppKit) for macOS.

Learn how to programmatically create an NSToolbar with NSToolbarItem and specialized versions of NSToolbarItem elements such as:

in order to get expected behavior like menus, search bars, share options, and overflow items all for free.

NSToolbarItemGroup

This particular item is special in that it displays as a segmented control and will collapse into a Popup Button when space is limited.

Overflow and Visibility Priority

When a toolbar doesn't have enough space, it will start putting elements into the overflow menu. You can assign an overflow priority to your items so that some items will fall into the overflow menu before others. For example, an overflow priority of low will move that item into an overflow menu before others as horizontal space becomes more limited. See examples of this in the code.

Titlebar Accessory

The titlebar accessory view controller is an additional view that can be attached to your window's titlebar or toolbar (if one was added). This isn't part of the Toolbar but it's a good UI element to know about it since it can complement it. You can add additional UI elements appropriate to the current context of your app. This example shows how to create and add an accessory view. For more information on NSTitlebarAccessoryViewController, check out Apple's documentation.

One example of NSTitlebarAccessoryViewController is the Favorites bar in Safari on macOS. It shows a horizontal list of bookmarks you've favorited across and under the main toolbar. Just how you can toggle this Favorites bar on and off, this example code displays a toggle button as well to show or hide this accessory view.

macOS Catalina and older

As of macOS Catalina, you can also set the isBordered element to gain an NSButton look and feel for free without having to set the view property of NSToolbarItem with an NSButton.

This example also goes over how to create NSToolbarItemGroup to create an item that looks like an NSSegmentedControl that will automatically turn into a dropdown menu when space becomes limited. It will also add itself as a submenu to the overflow menu if the width space becomes severely limited.

About

Programmatically constructing an NSToolbar

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%