PreferencePaneに関するメモ

参照した場所は

http://developer.apple.com/techpubs/macosx/AdditionalTechnologies/PreferencePanes/index.html

PreferencePaneとは

NSPreferencePaneクラスを使用する

PreferencePaneはCocoaアプリケーションでないといけない。

PreferencePaneは拡張子が.prefPaneのバンドル形式のパッケージ

PreferencePaneの起動の流れ

initWithBundle

loadMainView

mainNibName

assignMainView

setMainview

mainViewDidLoad

willSelect

disSelect

Info.plistのKeyとその意味

CFBundleIdentifier

NSMainNibFile

NSPrefPaneIconFile

NSPrefPaneIconLabel

NSPrincipalClass

PreferencePaneを置く場所は

/System/Library/PreferencePanes

/Network/Library/PreferencePanes

/Library/PreferencePanes

~/Library/PreferencePanes

/Library/Application Support

Preference data の読み書き

CFStringRef appID, userName, hostName;
CFStringRef key = CFSTR("PrefKey");
CFPropertyListRef value;

value = CFPreferencesCopyValue(key, appID, userName, hostName);
CFPreferencesSetValue(key, appID, userName, hostName);

value = CFPreferencesCopyAppValue(key, appID);
CFPreferencesSetAppValue(key, value, appID);

ターゲットアプリケーションとの連絡

Distributed Objects を使う

Distributed Notifications を使う

PreferencePaneプロジェクトの作成は

ProjectBuilderのPreferencePaneテンプレートを使うと簡単にできる

プロジェクト作成後の作業

InterfaceBuilderを使ってユーザーインターフェースを構築する

ヘッダファイルを更新する

#import <CoreFoundation/CoreFoundation.h>

CFStringRef appID;

initWithBundle:メソッドの組み込み

スーバークラスを呼び出す
アプリケーション識別変数(appID)の初期化

mainViewDidLoad:メソッドの組み込み

ユーザーインターフェース用部品の初期化

アクションメソッドの組み込み

didUnselectメソッドの組み込み

変更したデータをディスクに保存する
データの変更をNotificationで通知する

他のアプリケーションからPreferencePaneを使う