私はアプリケーションにいくつかの設定を追加する必要に直面し、多くのレッスンと記事を調べましたが、ほとんどどこでも説明が断片的でわかりにくいものだったので、設定でアプリケーションの設定ウィンドウを作成する基本原則を簡単に簡単に説明しようとします。
プロセス全体を簡単に説明すると、次のことを行う必要があります。
- Settings.bundleファイルセットをプロジェクトに追加します
- Root.plistファイルに、設定ウィンドウの必要なすべてのインターフェイス要素を記述します
- NSUserDefaultsタイプのオブジェクトをプロジェクトに追加し、そこからすべての設定を取得します
これですべてが整頓され、より詳細になりました。 必要なすべてのファイルをプロジェクトに追加するには、[ファイル]-> [新規]-> [新規ファイル]メニューに移動し、[リソース]-> [設定バンドル]を選択します。
その後、プロジェクトのファイルのリストに、Root.plistファイルとen.lprojフォルダーで構成される新しいSettings.bundleフォルダーが表示されます。 このファイルには、アプリケーションの設定に関するセクションが[設定]に作成されるすべての情報が含まれており、さまざまな言語のアプリケーションのローカライズを実装するためにフォルダーが必要です。
Root.plistファイルは、設定ウィンドウを構成するプロパティを備えたインターフェイス要素の単なるリストです。 デフォルトでは、次のようになります。
ここでアプリケーションをコンパイルすると、ヘッダー、テキストフィールド、スイッチ、スライダー(スライダー)で構成されるウィンドウを選択した後、アプリケーションの名前の行が[設定]に表示されます。 それらは、ファイルに入れられるのと同じ順序で配置されます。 ファイル内の行を追加、削除、交換することにより、[設定]の設定ウィンドウの外観をカスタマイズできます。
次に、主要なインターフェイス要素とそのプロパティについて詳しく説明します。
すべての要素にはTypeプロパティがあり、要素のタイプを定義します。Sliderを除くすべての要素にはTitleプロパティがあります。インターフェイス要素のタイトル、Group以外のすべての要素にはIdentifierプロパティがあります。
各要素に固有のプロパティのリスト:
グループ -タイトルとタイプの2つのプロパティのみがあり、ラベルの作成と設定のグループへの視覚的な分離にのみ必要です。
テキストフィールド
- 自動大文字化スタイル-テキストの自動大文字化(無効、文の始まり、すべての単語、すべて大文字)
- 自動修正スタイル-テキストのエラーの修正
- デフォルト値-テキストフィールドのデフォルト値
- テキストフィールドは安全です-パスワードフィールド
- キーボードタイプ-このフィールドのキーボードタイプ(アルファベット、数字と記号、数字、URL、電子メール)
トグルスイッチ
- デフォルト値-デフォルト値(yes / no)
- OFFの値-OFFの場合に要素が返す値(234など、NO以外の値を取得する必要がある場合)
- ONの値-ONの場合に要素が返す値(143など、YES以外の値を取得する必要がある場合)
スライダー
- デフォルト値
- 最大値
- 最小値-最小許容値
- 最大値画像ファイル名-最大値に近い画像
- 最小値画像ファイル名-最小値に近い画像
マルチバリュー
- タイトル-選択テーブル内のラベルの配列
- 値-各オプションが選択されたときに返される値
- デフォルト値
Slider要素に画像を追加するプロセスについても説明したいと思います。 コンパイル後、アプリケーションファイルは1つの「サンドボックス」に、設定アプリケーションファイルは別のファイルに格納されるため、単に画像ファイルをアプリケーションにドラッグアンドドロップするだけでは機能しません。 設定アプリケーションの「サンドボックス」にファイルを追加するには、Finderに移動し、アプリケーションが含まれるフォルダーを見つけます。Settings.bundle要素があり、それを右クリックして[パッケージの内容を表示]を選択します
既におなじみのファイルを含むフォルダーが開き、その中に画像ファイルをコピーする必要があります。
今。 設定ウィンドウの外観が作成されると、アプリケーションからこれらの設定を取得するためだけに残ります。 これを行うには、NSUserDefaults型のオブジェクトを作成し、それにアプリケーション設定データを割り当て、各設定のIdentifierプロパティで指定されたキーによってこれらの設定の値を取得する必要があります。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; text = [defaults objectForKey:@"textField"];
逆のプロセスも機能します。つまり、アプリケーションから設定を変更して保存できます。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setValue:text forKey:@"textField"];
設定ウィンドウのすべての基本的な要素を含むリンクからアプリケーションの例をダウンロードできます。また、スライダーとスイッチの設定を変更することもできます。
アプリケーションソースをダウンロードする