Preferences are user-defined settings your app remembers from session to session. Users adjust preferences to customize the appearance and behavior of an app. For example, Finder includes preferences for things like customizing the appearance of the desktop and sidebar, displaying file extensions, and disabling the warning when emptying the trash.
Offer a limited set of useful preferences. Avoid including preferences for configuring every aspect of your app. Instead, be decisive and focus on features and appearance attributes people might actually want to modify.
Provide app-specific preferences. Users expect to manage certain settings globally, such as the size of sidebar icons, scrolling behavior, and auto-save behavior. Settings like these are already configurable in System Preferences. To ensure consistency and avoid confusion, your app shouldn’t include preferences that cause your app to behave differently than every other app in the system.
Reserve preferences for rarely changed settings. If there are settings people might want to change every time they open your app or every time they perform a certain task, consider exposing those settings in a floating panel the user can open and keep onscreen for quick access.
Provide menu items, not toolbar items, for accessing your app’s preferences. Toolbars are intended for frequently used items only. Users expect to find app-level preferences in the App menu and document-level preferences in the File menu. App-level preferences should also be accessible using the standard Command-Comma (,) keyboard shortcut. For related guidance, see Toolbars and Menu Bar Menus.
For developer guidance, see Preferences and Settings Programming Guide and Preferences Programming Topics for Core Foundation.
A preferences window is a modeless dialog that’s used to adjust an app’s preferences. Typically, a preferences window contains a toolbar that includes buttons for switching between groups of related settings, which are displayed in a view beneath the toolbar. These groupings are known as preference panes.
Apply preference changes immediately. Users expect preference changes to take effect as soon as they’re changed.
Disable the Minimize and Zoom buttons. Preferences windows are for making occasional adjustments to an app's behavior, so there should be no need for the window to be resized or to remain open for a long period of time.
Make sure the toolbar is always visible and noncustomizable. The toolbar of a preferences window enables navigation between different groups of settings that should always be available.
Indicate the active toolbar button. Apply a selected appearance to the toolbar button of the currently visible preference pane.
Update the window's title to reflect the currently visible preference pane. For example, if your preferences window has a General preference pane, the window’s title should be General when that pane is active. If your window doesn’t have multiple preference panes, then its title should be App Name Preferences.
Restore the last viewed preference pane. If the user switches preference panes, your app should remember this change and show the same pane immediately the next time the user opens your preferences window.