2013-03-07 71 views
2

結合可變的字典在我的頭文件中,我有一個財產申報可可與搜索欄

@property (strong) NSMutableDictionary *myContents; 

在我的實現,我已經指定的plist的內容(這是字典)到的NSMutableDictionary。

在我的窗口中,我有一個NSSearchField,我想與Dictionary綁定,那就是問題所在。我有幾個問題,並且在研究後仍然不明白。

(1)我應該使用哪一個? NSObjectController,NSDictonaryController或NSTreeController。

(2)我應該如何將控制器綁定到字典?是否有可以綁定的「鍵」和「值」,還是必須使用另一個類中聲明的屬性並將其添加到字典中? (3)我可以用一個「Key」鍵和另一個「Value」鍵將它綁定到一個NSTableView中嗎?

謝謝!

UPDATE 我的plist就像這樣Dictonary(root)> Dictionary> Strings。我建立了我的字典的方法是這樣的:

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

而且我通過訪問其中的一個:

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

第一冊是一本字典(第一個)。 「1」是字符串,是Book1的一個章節。那我該如何分割呢?

+1

你應該去NSObjectController。現在我沒有與我的Mac,明天我會給你充分的工作申請與步驟:) – 2013-03-07 16:13:35

+1

我希望你到那時你將解決問題 – 2013-03-07 16:13:59

+1

+1的問題在OSX :) – 2013-03-08 14:59:28

回答

3

(1)我應該使用哪一個? NSObjectController,NSDictonaryController,或者NSTreeController。

使用NSDictionaryController。

(2)如何將控制器綁定到字典?是否有 「鍵」和我可以綁定的「值」,或者是否必須使用在另一個類中聲明的屬性 並將其添加到字典中?

步驟1:在h文件創建@property(strong)NSMutableDictionary *dict;

步驟2:創建一個NSDictionaryController。

步驟3:檢查準備內容。

步驟4:設定爲:

enter image description here

步驟5:創建一個NSTableView的。

步驟6:對於第一塔做如:

enter image description here

步驟7:類似地,對於第二列放valueModel Key Path

找到running sample here

(3)我可以將它綁定到NSTableView的一邊是「鑰匙」,另一邊是「價值」的 ?

已經完成。

通過NSSearchField

步驟1裝訂NSDictionaryController與NSTableView的:繪製一個NSSearchField。

第2步:將它綁定到Predicate選項中的NSDicitonaryController。

步驟3:在謂語形式把key contains $value

enter image description here

+0

非常感謝你!我會耐心等待搜索領域! – user1927992 2013-03-08 15:00:51

+0

實施,請確認:) – 2013-03-08 15:02:56

+0

非常感謝!我不知道如何謝謝你,但我仍然有問題。我很抱歉,請幫助我。它在UPDATED部分。非常感謝你! – user1927992 2013-03-08 15:14:51

1

當你的第二個問題是:

的NSString * myListPath = [[一個NSBundle mainBundle] pathForResource:@「集合「ofType:@」plist「]; self.Dictionary1 = [[NSMutableDictionary alloc] initWithContentsOfFile:myListPath];

我 訪問他們的一個:

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

您可以使用:

NSString *[email protected]"Book1"; 
NSString *chapter=[book integerValue]; 
NSString *initialString=self.Dictionary1[book][chapter]; 
+0

然後我會如何將它綁定到字典控制器。我發現關鍵是:書和價值結果是:「1 =故事故事」。我該如何解決這個問題? – user1927992 2013-03-09 04:17:12