---
title: Introduction
framework: userexperience
role: article
path: apple-archive/documentation/UserExperience/Conceptual/PreferencePanes
---

# Introduction

Explains how to create dynamically loaded plug-ins that provide a graphical interface to user preferences.

## Who Should Read This Document?

You should read this document if you are a Cocoa developer who wants to provide a custom preference pane, accessible from the System Preferences applications, to your users. You should have a working knowledge of Cocoa programming with the Application Kit before attempting preference pane programming.

## Organization of This Document

This document describes how to create and manage a preference pane, how to have System Preferences load your own preference pane, and how to load a preference pane in your own application.

Here are the concepts covered:

- [Architecture of Preference Panes](Concepts/Architecture.html#//apple_ref/doc/uid/20000701-BAJECHGA) describes the plug-in architecture of preference panes and how they interact with applications and the system. - [The Preference Application](Concepts/Application.html#//apple_ref/doc/uid/20000702-CJBJFACH) describes the ways the preference pane can be presented to the user: System Preferences, a specialized preferences application, or inside the main application. - [Managing User Preferences](Concepts/Managing.html#//apple_ref/doc/uid/20000703-BABGHFDE) describes several ways the preference pane can interact with the system for manipulating preferences. - [Life Cycle of a Preference Pane](Concepts/Running.html#//apple_ref/doc/uid/20000704-BCIFHFGE) describes how the application interacts with the preference pane. - [Anatomy of a Preference Pane Bundle](Concepts/Anatomy.html#//apple_ref/doc/uid/20000705-CJBCABAB) describes the structure of a preference pane bundle. - [Updating Preference Panes](Articles/UpdatingPreferencePanes.html#//apple_ref/doc/uid/TP40008039-SW2) describes the requirements for preference panes for OS X version 10.6 and later.

Here are the tasks covered:

- [Preventing Name Conflicts](Tasks/Conflicts.html#//apple_ref/doc/uid/20000706-BAJIAGFD) recommends a technique to prevent name conflicts between the global symbols in your preference pane and either the application or other preference panes. - [Wrapping Long Labels](Articles/WrappingLongLabels.html#//apple_ref/doc/uid/TP40008042-SW1) describes how to modify the `.plist` file so that long labels are split across two lines. - [Using Preference Services](Tasks/Preferences.html#//apple_ref/doc/uid/20000707-BABFCABJ) describes the methods available for reading and writing preferences to a preference file. - [Communicating With the Target Application](Tasks/Communication.html#//apple_ref/doc/uid/20000708-BABFCABJ) provides examples for notifying a separate target application of preference changes. - [Creating a Preference Pane Bundle](Tasks/Creation.html#//apple_ref/doc/uid/20000709-BABFCABJ) walks you through the steps of creating a skeletal preference pane bundle in Xcode and Interface Builder. - [Implementing a Simple Preference Pane](Tasks/Sample.html#//apple_ref/doc/uid/20000710-BABFCABJ) walks you through the source code of a simple preference pane, showing an example of how to implement a working preference pane. - [Using Preference Panes in Other Applications](Tasks/OtherApps.html#//apple_ref/doc/uid/20000711-BBCBAGAH) describes the responsibilities of an application that loads a preference pane.

[Next](Concepts/Architecture.html)

Copyright © 2003, 2012 Apple Inc. All Rights Reserved. [Terms of Use](http://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](http://www.apple.com/privacy/) | Updated: 2012-12-13
