Привязки какао: привязать выделение NSComboBox к полю в NSObjectController - PullRequest
2 голосов
/ 29 октября 2009

в моем приложении у меня есть NSObjectController, связанный со всеми элементами управления в пользовательском интерфейсе. Это работает отлично до сих пор. Единственная проблема, которую я имею, это привязка выбора NSComboBox к тому же ObjectController. Насколько я сегодня узнал, значение ComboBox всегда является строкой, поэтому поле в классе OBjectController также является NSString. Звучит легко для меня, но не работает.

Я всегда получаю " ... класс не соответствует значению ключа для ключа ... "

Элементы в самом ComboBox получены от другого контроллера, NSArrayController. Но эта часть работает отлично. Все элементы из массива являются элементами в ComboBox. Проблема, с которой я столкнулся, заключается в получении выбора в ObjectController.

1 Ответ

2 голосов
/ 07 ноября 2009

Это просто говорит о том, что любой объект модели данных, который использует NSObjectController, не имеет подходящего ключевого метода для этого значения.

Из справочной документации по привязкам какао следует установить привязку value к ключу в вашем NSObjectController, который соответствует ключу, соответствующему кодированию значения ключа в его модели.

Пример:

NSObjectController режим Class, имя класса foo. Затем вы связываете ключ foo comboSelection с ключом NSComboBox value. Исключением является то, что класс Foo не имеет метода с именем comboSelection:

- (NSString*)comboSelection;
- (void)setComboSelection:(NSString*)inSelection;

В случае использования NSMutableDictionary в качестве класса NSObjectController это намного проще, поскольку словарь может содержать произвольные ключи.

Если вы используете CoreData (mode = Entity), то ваша сущность CoreData должна содержать соответствующее свойство.

...