ユーザー定義ランタイム属性の追加


対応する Interface Builder のインスペクタがないオブジェクトにカスタムのランタイム属性の初期化を追加します。nib ファイルがロードされると、指定したカスタム属性のそれぞれは、setValue:forKeypath の呼び出しで初期化されます。


手順


  1. Interface Builder でストーリーボードまたは xib ファイルを開きます。

  2. Interface Builder で、属性を追加するオブジェクトを選択します。

  3. [表示(View)] > [ユーティリティ(Utilities)] > [ID インスペクタの表示(Show Identity Inspector)] を選択します。

  4. ID インスペクタは、ユーティリティ領域に表示されます。以下に示すように、ユーザ定義のランタイム属性エディタは、インスペクタ内の項目の一つです。



    IB_H_user_rt_attribs_pane_2x


  5. ユーザー定義のランタイム属性エディタの左下にある追加ボタン (+) をクリックします。

  6. 以下に示すように新しいランタイム属性がエディタに表示されます。



    IB_H_user_rt_attribs_new_2x


  7. 属性のキーパスを編集するため、新しい属性の[キーパス(Key Path)] フィールドをダブルクリックします。

  8. 例えば、isDataLoaded と呼ばれるランタイムプロパティを初期化するには、"キーパス" を"isDataLoaded" に置き換えます。同様に、exercise 辞書の yoga キーを初期化するには、"excersize.yoga"と入力します。


    Return キーを押して値を確定します。


  9. 項目の[型(Type)] の属性をクリックし、表示されるポップアップメニューから型を選択します。

  10. IB_H_user_rt_attribs_types_2x


  11. [値(Value)] フィールドに、新しいカスタム属性の初期値を設定します。

  12. 値のエディタは、ステップ6で設定した[型] に応じて異なります。



値型オブジェクト型エディタ
BooleanNSNumberチェックボックス。チェックされると true。チェックされないと false
NSNumber有効な数値を受け付けるテキストエディタ。Xcode で無効な数値を入力するとエラーダイアログを提示します。
文字列NSString任意の有効な文字列を受け付けるテキストエディタ。
ローカライズされた文字列NSLocalizedString任意の有効な文字列を受け付けるテキストエディタ。ローカライズされた文字列のファイルにエントリを追加します。
ポイントCGPointxy の両方が有効な CGFloat 値の形式 {X,Y} 内の数値のペアを受け付けるテキストエディタ。
サイズCGSizewidthheight が有効な CGFloat 値の形式 {width,height} 内の数値のペアを受け付けるテキストエディタ。
RectCGRect{{X,Y},{width,height}} すべてのエントリが有効な CGFloat 値の形式の数字の二つのペアを受け付けるテキストエディタ。
RangeNSRangelocationrange が有効な NSUInteger の値の形式 {location,range} の数値のペアを受け付けるテキストエディタ。
CGColorカラーエディタ。
イメージiOS 上の UIImage または OX 上の NSImageアセットカタログや画像を含むリソースファイルのイメージの名前。
NilNilエディタなし。


ユーザ定義の実行時の属性は、Interface Builder インスペクタを持たないオブジェクトの初期値を設定するため使用して下さい。たとえば、カスタムビューの ID インスペクタで以下のエントリを追加する場合:


IB_H_user_rt_attribs_eg_2x


nib がロードされると、カスタムビューには、このメッセージが表示されます。



[customView setValue:[NSNumber numberWithBoolean:NO] forKeyPath:@"isDataLoaded"];
[customView setValue:@"Hatha" forKeyPath:@"excersize.yoga"];
[customView setValue:nil forKeyPath:@"myData"];




重要: ユーザー定義のランタイム属性のプロパティまたはキーパスはオブジェクト内に存在していなければならず、そうでなければ例外が発生します。



関連記事


決定済みの議論


(なし)







目次
Xcode 9 の新機能

★ヘルプ項目総索引★

ユーザーインターフェース索引
ユーザーインターフェースのビルド
ストーリーボードと Xib ファイルの作成
Interface Builder ファイルの検査と構成
別のローカライズ、iOS デバイス、そして iOS バージョン用のレイアウトのプレビュー
分割画面でアプリのプレビュー
ビューにガイドの追加
Apple TVのグリッドのためのガイドを追加
ユーザー定義ランタイム属性の追加
状態と上下のバーのシミュレーション
スクリーンサイズや向きのシミュレーション
文字列の検索と置換
ストーリーボードの拡大率を変更
プレースホルダの背景の切り替え












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ