В настоящее время я борюсь с QDynamicDataSection QuickDialog. Я хочу заполнить динамический раздел. Когда я запускаю следующий код, взятый из демонстрации, я получаю динамический раздел, заполненный несколькими экземплярами шаблона, т.е. «Что-то здесь». Однако я хочу получить «первое» и «второе». Как этого можно достичь?
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
(см. комментарий Эдуардо) тоже работает.