目前,我在使用QuickDialog的QDynamicDataSection。 我想填充动态部分。当我从演示中运行以下代码时,我得到一个动态部分,其中填充了模板的几个实例,即“Something here”。但是,我希望获得“第一”和“第二”。怎么能达到这个目标?
QDynamicDataSection *section = [QDynamicDataSection new];
section.title = @"Normal: with elements";
section.bind = @"iterate:something";
section.elementTemplate = [NSDictionary dictionaryWithObjectsAndKeys:
@"QLabelElement", @"type",
@"Something here", @"title",
nil];
[root addSection: section];
[root bindToObject:[NSDictionary dictionaryWithObjectsAndKeys:
[NSArray arrayWithObjects:@"first", @"second", nil], @"something",
nil]];
使用解决方案进行编辑:
爱德华多让我走上正轨(获得了荣誉):object
似乎不起作用)以下代码按预期工作:
QDynamicDataSection *section = [QDynamicDataSection new];
section.title = @"Normal: with elements";
section.bind = @"iterate:something";
section.elementTemplate = [NSDictionary dictionaryWithObjectsAndKeys:
@"QLabelElement", @"type",
@"title:name", @"bind",
nil];
[root addSection: section];
[root bindToObject:[NSDictionary dictionaryWithObjectsAndKeys:
[NSArray arrayWithObjects:
[NSDictionary dictionaryWithObject: @"first" forKey: @"name"],
[NSDictionary dictionaryWithObject: @"second" forKey: @"name"],
nil], @"something",
nil]];
return root;
@Eduardo Scoz:我建议采用SampleDataBuilder.m
中的示例代码。
第二次修改
self
的方法(参见Eduardo的评论)也有效。
答案 0 :(得分:1)
“iterate”键只是迭代字典中的项目,并根据每个元素的模板创建一个新元素。它还将新项绑定到数组中的对象。
在您的情况下,您的模板未定义任何绑定,因此创建的新项目没有任何修改的值。你必须添加像@“bind”,@“title:object”这样的东西。 (对象返回绑定的实际对象,因此您不会绑定它的属性。