Guides and Sample Code


macOS Human Interface Guidelines


Full-Screen Windows

Full-screen windows make it easy for users to enter a distraction-free environment that helps them focus on a task. Follow the guidelines in this section to ensure that your app enables windows to go full screen when and how it’s appropriate.

Determine whether it makes sense for a window to go full screen. Full-screen windows immerse users in a task. Therefore, they’re not as useful in apps that users don’t need to spend much time in, such as Contacts or Calculator. If your app enables brief utilitarian tasks, it probably doesn’t make sense to allow app windows to go full screen. In particular, if you’ve designed apps for iOS devices, don’t assume that your macOS app should automatically be full screen.

Show the toolbar if the full-screen task requires it. When a window goes full screen, it can display the toolbar or it can allow users to reveal the toolbar, along with the menu bar, by moving the pointer to the top edge of the screen. (A full-screen window never shows its title bar.)

For example, the full-screen Calendar window displays the toolbar because it contains controls that are essential to the task of viewing and managing the user’s schedule.

image: ../Art/fullscreen_toolbar_2x.png

On the other hand, a full-screen Preview window doesn’t display the toolbar, because users are more likely to want to focus on reading the content, than on annotating or selecting it.

image: ../Art/fullscreen_no_toolbar_2x.png

Bring into the full-screen window all the features users need to complete the task. Above all, avoid forcing users to exit the full-screen window in order to complete the task. In particular, identify all the tools required for the task and make them available within the full-screen window, in a toolbar if necessary. If some of the required tools are in an auxiliary window, be sure to designate this window as a full-screen auxiliary window, which means that it can be opened in the same space as the full-screen window (to do this, you specify the constant NSWindowCollectionBehaviorFullScreenAuxiliary). Or, consider making the tools available within the UI of the full-screen window instead of in an auxiliary window.

Avoid requiring users to interact with the Finder while they’re in a full-screen window. Opening a Finder window might cause the user to exit the full-screen window. Instead, provide other ways for users to bring content into the window, such as a source list or a customized Open dialog. To learn more about Open dialogs, see The Open Dialog.

Take advantage of the increased screen space, but don’t shift the focus away from the main task. In general, a window grows more in width than in height when users take it full screen. If appropriate, you can subtly adjust the proportions of the UI, so that the window fits better into the space and elevates the areas of the UI that are essential for performing the main task.

At the same time, don’t make the full screen version of your window so different from the standard version that users don’t recognize it. You want users to be able to stay focused on their task, even while they watch the window enlarge and perhaps alter a little in appearance. For example, when users take the Photo Booth window full screen, they never lose sight of themselves in the main viewing area.

Don’t disable or override system-reserved gestures while a window is full screen. Even though your app is the current focus of the user’s attention, users should still be able to reveal Mission Control and move between other desktops and full-screen windows.

Respond appropriately when users switch away from your full-screen window. For example, a game should pause its action when users switch away from the full-screen experience so that they don’t miss important game events. Similarly, a slide show should pause when users switch away from it. In addition, be sure to let users decide when to take a window out of full screen. That is, don’t take a window out of full-screen mode when users switch away from it.

In general, don’t prevent users from revealing the Dock. It’s important to preserve users’ access to the Dock even while they’re in a full-screen window, because they should always be able to open other apps and view stacks. An exception to this is in a game, in which the user might expect to be able to move the pointer to the bottom edge of the screen without revealing the Dock.