アプリケーション・スキーマの設定

2011. 01. 24
●はじめに

iPhoneアプリケーションのプリファレンスは、Settings(設定)システムアプリケーションによって表示されます。

Settingsアプリケーションに必要な情報は、貴方が表示したいものとユーザが変更可能なプリファレンスをsettingsバンドルとして作成し、アプリケーションのバンドルディレクトリに組み込みます。

その後、アプリケーションが実行時に取得できるように、デフォルトデータベース内に設定値を保存します。

このドキュメントは、settingsバンドル内に含めるスキーマファイルを構成する要素について説明します。

全てのバンドルはルートコンテンツを持っている必要があります。

その他に含まれる要素は、貴方が必要とし、表示する予定のプリファレンスに基づきます。

settingsバンドルの生成についての情報は、『iOS Application Programming GuideiOSアプリケーションプログラミングガイド)』を参照してください。


●スキーマファイルのルートコンテンツ

各個の設定画面はプロパティリストファイルによって表されます。

最小限として、Settingsバンドルは少なくとも一つのRoot.plistファイルによって表されるルート画面を持つ必要があります。

子ウィンドウ要素を使用して画面を追加する場合、各個の画面はそれぞれに関連付けされたプロパティリストファイルを持つ必要があります。

各ファイルのルートレベルで表示することができるキーのリストを表1に示します。

表1 プリファレンス・スキーマのルートレベルのキー
キータイプ
PreferenceSpecifiers
(必須) 
Array このキーの値は辞書の配列で、各辞書は一つのプリファレンス要素のた
めの情報を含みます。
これらのキーは、貴方がプリファレンスのページ上で表示したい要素を
記述する必要があります。 
StringsTableStringこのスキーマファイルに関連付けされた文字列ファイルの名前です。
この(適切にローカライズされた文字列の)ファイルのコピーは貴方の
バンドルの言語指定プロジェクトディレクトリにある必要があります。
文字列ファイルの作成についての情報は、『Internationalization Program
ming Topics
』を参照してください。 

各設定画面の上部に表示されるタイトル文字列は、外部ソースに由来しています。

アプリケーションのルート設定画面の場合、タイトル文字列はアプリケーション名そのものになります。

子の設定画面では、タイトルは子ウィンドウ要素のTitleキーから取得して画面の表示に使用します。

このキーについての詳細は『子ウィンドウ要素』を参照してください。

PreferenceSpecifiersキー内の各辞書は、プリファレンス要素に関連付けされたキーを含みます。

サポートする要素のタイプを表2に示します。

表2 PreferenceSpecifiersキーに含まれる要素のタイプ
要素のタイプ説明
PSTextFieldSpecifierテキストフィールドのプリファレンスです。
この要素は編集可能なテキストフィールドとオプションでタイトルを表示
します。
ユーザにカスタムの文字列値を要求する場合、プリファレンスにこのタイ
プを使用することができます。
詳細は『テキストフィールド要素』を参照してください。 
PSTitleValueSpecifier読み込み専用文字列のプリファレンスです。
フォーマットされた文字列として、値をプリファレンスに表示する場合に
この値を使用することができます。
詳細は『タイトル要素』を参照してください。 
PSToggleSwitchSpecifierトグルスイッチのプリファレンスです。
2つの値の内の1つの値を選択するプリファレンスを構成する場合に、この
値を使用することができます。
一般的にこの値はブール値を含むプリファレンスを表すのに使用されます
が、プリファレンスにブール値以外を含めることもできます。
詳細は『トグルスイッチ要素』を参照してください。 
PSSliderSpecifierスライダのプリファレンスです。
値の範囲を表すプリファレンスに、この値を使用することができます。
このタイプの値は、指定した最小値と最大値の実数を表します。
詳細は『スライダ要素』を参照してください。 
PSMultiValueSpecifier複数値のプリファレンスです。
相互に排他的な設定をサポートするプリファレンスに、この値を使用する
ことができます。
詳細は『複数値要素』を参照してください。 
PSGroupSpecifierグループアイテムのプリファレンスです。
グループタイプは、1つのページ上にあるプリファレンスのグループを分
類するための方法です。
グループタイプはプリファレンスの構成を表すものではありません。
詳細は『グループ要素』を参照してください。 
PSChildPaneSpecifier子ウィンドウのプリファレンスです。
プリファレンスの新しいページにリンクする場合に、この値を使用するこ
とができます。
詳細は『子ウィンドウ要素』を参照してください。 


グループ要素(Group Element)

PSGroupSpecifierタイプに関連付けされた辞書内に置くことができるキーを表3に示します。

このタイプはグループ要素を定義し、ページ上のプリファレンスを視覚的にグループ分けする方法です。

この要素は、グループに関連付けされたプリファレンスの前に配置する必要があります。

グループのタイトルを割り当てたり、キーを省略してプリファレンスの間にギャップを表示することができます。

表3 PSGroupSpecifier辞書のキー
キー値のタイプ
Type
(必須)
Stringこのキーの値は常にPSGroupSpecifierに設定します。
このキーは必須です。
Title
(ローカライズ可)
Stringグループのタイトルです。
このキーが指定されていない場合、プリファレンスの間には代わ
りにギャップが入ります。
このキーの値はローカライズできます。 
FooterText
(ローカライズ可)
Stringグループボックスの下に表示する追加テキストです。
提供するフッタはオプションです。
このキーの値はローカライズできます。
このキーはiOS 4.0以降で利用できます。 


子ウィンドウ要素(Child Pane Element)

PSChildPaneSpecifierタイプに関連付けされた辞書内に置くことができるキーを表4に示します。

この要素はプリファレンスの行に表示され、タップされた時にプリファレンスの新しいページが読み込まれます。

プリファレンスの階層的なページを構成する場合に、この要素のタイプを使用することができます。

表4 PSChildPaneSpecifier辞書のキー
キータイプ
Type
(必須)
Stringこのキーの値は常にPSChildPaneSpecifierに設定します。
このキーは必須です。
Title
(必須、
ローカライズ可)
Stringプリファレンスの行に表示するタイトルの文字列です。
この文字列をユーザがタップすると次のページが表示されます。
またこの文字列はこの後で表示される画面のタイトルとして使用されま
す。
このキーは必須です。
このキーの値はローカライズできます。
File
(必須)
String読み込むスキーマファイルの名前です。
(このファイルはプロパティリストファイルである必要があります)
このキーで指定する文字列は、パス情報や、スキーマファイル名の拡張
子.plistを含める必要はありません。
Settingsアプリケーションは、指定した名前の.plistファイルをsettingsバン
ドルの最上位レベルから検索します。
例えばMyPrefs.plistファイルを指定する場合、このキーの値にはMyPrefs
を割り当てます。
このキーは必須です。


トグルスイッチ要素(Toggle Switch Element)

PSToggleSwitchSpecifierタイプに関連付けされた辞書内に置くことができるキーを表5に示します。

この要素はユーザが切り替えることができるON/OFFボタンを表示します。

表5 PSToggleSwitchSpecifier辞書のキー
キー値のタイプ
Type
(必須)
Stringこのキーの値は常にPSToggleSwitchSpecifierに設定します。
このキーは必須です。
Title
(必須、
ローカライズ可)
Stringスイッチの左側に表示する文字列です。
このキーは必須です。
このキーの値はローカライズできます。
Key
(必須)
String値を識別するプリファレンスのキーです。
この文字列は、デフォルトデータベースからプリファレンスの値を
取得するために使用します。
このキーは必須です。
DefaultValue
(必須)
Anyプリファレンスのキーのデフォルト値です。
この値は、(Keyで登録されている)指定したプリファレンスの
キーがデフォルトデータベース内に存在しない場合に返されます。
このキーは必須です。
TrueValueAnyトグルスイッチがONの位置にある場合に関連付けされている値で
す。
このキーの値の型には、ブール値、文字列、数値、日付、データを
含むスカラー型を指定できます。
このキーが指定されていない場合、デフォルト値はブール型のYES
になります。
FalseValueAnyトグルスイッチがOFFの位置にある場合に関連付けされている値で
す。
このキーの値の型には、ブール値、文字列、数値、日付、データを
含むスカラー型を指定できます。
このキーが指定されていない場合、デフォルト値はブール型のNO
になります。


スライダ要素(Slider Element)

PSSliderSpecifierタイプに関連付けされた辞書内に置くことができるキーを表6に示します。

この要素はユーザが連続した範囲の値を指定するのに使用することができるスライダを表示します。

表6 PSSliderSpecifier辞書のキー
キー値のタイプ
Type
(必須)
Stringこのキーの値は常にPSSliderSpecifierに設定します。
このキーは必須です。
Key
(必須)
String値を識別するプリファレンスのキーです。
この文字列は、デフォルトデータベースからプリファレンスの値
を取得するために使用します。
このキーは必須です。
DefaultValue
(必須)
Realプリファレンスのキーのデフォルト値です。
この値は(Keyで登録されている)指定したプリファレンスの
キーがデフォルトデータベースに存在しない場合に返されます。
このキーは必須です。
MinimumValue
(必須)
Realスライダの最小値です。
このキーは必須です。
MaximumValue
(必須)
Realスライダの最大値です。
このキーは必須です。
MinimumValueImageStringスライダの最小値側に表示する画像です。
この画像は21x21ピクセルにする必要があります。
MaximumValueImageStringスライダの最大値側に表示する画像です。
この画像は21x21ピクセルにする必要があります。


タイトル要素(Title Element)

PSTitleValueSpecifierタイプに関連付けされた辞書内に置くことができるキーを表7に示します。

この要素は読み込み専用のプリファレンスを表します。

アプリケーションの構成に関する情報をユーザに提供するために使用することができます。

表7 PSTitleValueSpecifier辞書のキー
キー値のタイプ説明
Type
(必須)
Stringこのキーの値は常にPSTitleValueSpecifierに設定します。
このキーは必須です。
Title
(ローカライズ可)
Stringこの文字列は値の左側に表示されます。
このキーの値はローカライズできます。 
Key
(必須)
String値を識別するプリファレンスのキーです。
この文字列は、デフォルトデータベースからプリファレンスの値
を取得するために使用します。
このキーは必須です。
DefaultValue
(必須)
Stringプリファレンスのキーのデフォルト値です。
この値は、(Keyで登録されている)指定したプリファレンスの
キーがデフォルトデータベースに存在しない場合に返されます。
このキーは必須です。
ValuesArrayデフォルトデータベース内の(Keyで登録されている)プリファ
レンスのキーに関連付けされた値の配列です。
これらの値は任意の型を指定できます。
各値はTitles配列に対応する値である必要があります。
Titles
(ローカライズ可)
ArrayValues配列内のユーザが読み取れるバージョンの値を表す文字列
の配列です。
この配列の値はローカライズできます。

デフォルトデータベースの値を不可解に思う人のために、人が読める形式の文字列としてValuesとTitlesキーを関連付けすることができます。

双方の配列の登録数は同じにする必要があります。

指定されたインデックスの値がプリファレンスのキーに関連付けされている場合、Titles配列の同じインデックスの文字列はSettingsアプリケーションによってプリファレンスに表示されます。


テキストフィールド要素(Text Field Element)

PSTextFieldSpecifierタイプに関連付けされた辞書内に置くことができるキーを表8に示します。

表8 PSTextFieldSpecifier辞書のキー
キー値のタイプ
Type
(必須)
Stringこのキーの値は常にPSTextFieldSpecifierに設定します。
このキーは必須です。
Title
(ローカライズ可)
Stringテキストフィールドの値の左側に表示する文字列です。
この文字列は左揃えの太字で描画されます。
このキーを省略した場合、行の全幅が編集可能なテキストフィ
ールドになります。
この値はローカライズできます。 
Key
(必須)
String値に関連付けするプリファレンスのキーです。
これはコードでプリファレンスの値を取得する際に使用する文
字列です。
このキーは必須です。
DefaultValueStringプリファレンスのキーのデフォルト値です。
この値は(Keyで登録されている)指定したプリファレンスの
キーがデフォルトデータベース内に存在しない場合に返されま
す。
このキーが存在しない場合、空の文字列がキーに関連付けされ
ます。
IsSecureBooleanYESの場合、テキストフィールドはパスワード登録のテキスト
フィールドになり、入力したテキストが黒丸に置き換えられま
す。
NOの場合、テキストフィールドは標準のテキストフィールド
になり、入力したテキストはそのまま表示されます。
このキーが存在しない場合デフォルト値はNOになります。 
KeyboardTypeStringユーザに表示するキーボードのタイプです。
この値はAlphabet、NumbersAndPunctuation、NumberPad、URL、
EmailAddressのいずれかの文字列を含む必要があります。
このキーが存在しない場合デフォルト値はAlphabetになります。
AutocapitalizationTypeStringテキスト入力に自動大文字化スタイルを適用します。
この値はNone、Sentences、Words、AllCharactersのいずれかの
文字列を含む必要があります。
このキーが存在しない場合、デフォルト値はNoneになります。
AutocorrectionTypeStringテキスト入力に自動校正スタイルを適用します。
この値は、Default、No、Yesのいずれかの文字列を含む必要が
あります。
このキーが存在しない場合デフォルト値はDefaultになります。

テキストフィールドで使用する、オプションのキーボードや自動大文字化、自動校正についての詳細は、UITextInputTraitsプロトコルで定義されている定数を参照してください。


複数値要素(Multi Value Element)

PSMultiValueSpecifierタイプに関連付けされた辞書内に置くことができるキーを表9に示します。

複数値要素を含むプリファレンスをユーザがタップすると、Settingsアプリケーションは値を選択することができる新しいページを表示します。

値を選択すると、ユーザは前のページに戻り、選択した値がプリファレンスの行に表示されます。

表9 PSMultiValueSpecifier辞書のキー
キー値のタイプ説明
Type
(必須)
Stringこのキーの値は常にPSTextFieldSpecifierに設定します。
このキーは必須です。
Title
(必須、
ローカライズ可)
Stringプリファレンスを識別するユーザが読み取れる文字列です。
このキーは必須です。
この値はローカライズできます。
Key
(必須)
String値に関連付けするプリファレンスのキーです。
これはコードでプリファレンスの値を取得する際に使用する文字列
です。
このキーは必須です。
DefaultValue
(必須)
Anyプリファレンスのキーのデフォルト値です。
この値は、(Keyで登録されている)指定したプリファレンスの
キーがデフォルトデータベース内に存在しない場合に返されます。
このキーは必須です。 
Values
(必須)
Arrayデフォルトデータベース内の(Keyで登録されている)プリファレ
ンスのキーに関連付けされた値の配列です。
これらの値は任意の型を指定できます。
各値はTitles配列に対応する値である必要があります。
Titles
(必須)
ArrayValues配列内のユーザが読み取れるバージョンの値を表す文字列の
配列です。
これらは選択ページ上に実際に表示される文字列です。
文字列が選択されると、インデックスに一致した値がデフォルト
データベースに格納されます。
この配列の値はローカライズできます。

デフォルトデータベースの値を不可解に思う人のために、人が読める形式の文字列としてValuesとTitlesキーを関連付けすることができます。

双方の配列の登録数は同じにする必要があります。

指定されたインデックスの値がプリファレンスのキーに関連付けされている場合、Titles配列の同じインデックスの文字列はSettingsアプリケーションによってプリファレンスに表示されます。



参考文献

Settings Application Schema Reference

IT用語辞典/スキーマとは

0 CommentsPosted in 資料





QuietControl 30 wireless headphones
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
10 | 2017/11 | 12
Sun Mon Tue Wed Thu Fri Sat
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

QuietControl 30 wireless headphones
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR