2013-03-07 77 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