2

ヘッダーファイルに、プロパティが宣言されています

@property (strong) NSMutableDictionary *myContents;

私の実装では、plist(辞書)のコンテンツをNSMutableDictionaryに割り当てました。

私のウィンドウには、ディクショナリとバインドしたいNSSearchFieldがあり、それが問題です。いくつか質問がありますが、調査してもわかりません。

(1)どちらを使うべきですか?NSObjectController、NSDictonaryController、またはNSTreeController。

(2)コントローラーを辞書にバインドするにはどうすればよいですか?バインドできる「キー」と「値」はありますか、それとも別のクラスで宣言されたプロパティを使用してディクショナリに追加する必要がありますか?

(3)一方の側に「キー」、もう一方の側に「値」があるNSTableViewにバインドできますか?

ありがとうございました!

更新 私のplistは、このDictonary(root)>Dictionary>Stringsのようなものです。辞書を設定する方法は次のとおりです。

NSString *myListPath = [[NSBundle mainBundle] pathForResource:@"Collection" ofType:@"plist"];
self.Dictionary1 = [[NSMutableDictionary alloc]initWithContentsOfFile:myListPath];

そして、私はそれらの1つにアクセスします:

    NSString *initialString = [[_Dictionary1 valueForKey:@"Book1"]objectForKey:@"1"];

Book1は辞書(2つ目)です。「1」は文字列であり、Book1の章です。では、これをどのように分割しますか?

4

2 に答える 2

3

(1)どちらを使うべきですか?NSObjectController、NSDictonaryController、またはNSTreeController。

NSDictionaryControllerを使用します。

(2)コントローラーを辞書にバインドするにはどうすればよいですか?バインドできる「キー」と「値」はありますか、それとも別のクラスで宣言されたプロパティを使用してディクショナリに追加する必要がありますか?

ステップ1:@property(strong)NSMutableDictionary *dict;.hファイルで作成

ステップ2:NSDictionaryControllerを作成します。

ステップ3:チェックはコンテンツを準備します。

ステップ4:次のように設定します:

ここに画像の説明を入力してください

ステップ5:NSTableViewを作成します。

ステップ6:最初の列は次のようにします。

ここに画像の説明を入力してください

ステップ7:2番目の列についても同様valueですModel Key Path

ここで実行中のサンプルを見つけます。

(3)一方の側に「キー」、もう一方の側に「値」があるNSTableViewにバインドできますか?

すでに完了しました。

NSSearchFieldによるNSTableViewとのNSDictionaryControllerのバインド

ステップ1:NSSearchFieldを描画します。

ステップ2:述語オプションでNSDicitonaryControllerにバインドします。

ステップ3:述語形式でkey contains $value

ここに画像の説明を入力してください

于 2013-03-08T14:46:18.187 に答える
1

あなたの2番目の質問は:

NSString * myListPath = [[NSBundle mainBundle] pathForResource:@ "Collection" ofType:@ "plist"]; self.Dictionary1 = [[NSMutableDictionary alloc] initWithContentsOfFile:myListPath];

そして、私はそれらの1つにアクセスします:

NSString *initialString = [[_Dictionary1 valueForKey:@"Book1"]objectForKey:@"1"];

あなたが使用することができます:

NSString *book=@"Book1";
NSString *chapter=[book integerValue];
NSString *initialString=self.Dictionary1[book][chapter];
于 2013-03-08T17:01:53.463 に答える