Предполагая, что у меня есть подкласс, представляющий страну, например.Binding Cocoa Значение NSComboBox для объекта
@interface CountryInfo : NSObject
@property (nonatomic, retain) NSString *countryName;
Моя модель содержит NSMutableArray
из CountryInfo
с. Я хочу привязать массив к NSComboBox
. В поле со списком должно отображаться название страны и разрешить пользователю выбирать страну.
Итак, я создал мой .xib так:
CountryArrayController (NSArrayController)
ContentArray
- Привязать к: файла Владелец> Модель Key Path: себя .model.countries
NSComboBox
Содержание
- Привязать к: CountryArrayController> Контроллер Key: arrangedObjects
Содержание Значения
- Привязка к: CountryArrayController> Контроллер Key: arrangedObjects> Model Key Path: COUNTRYNAME
До сих пор, так хорошо. Теперь, как связать ЗначениеNSComboBox
? В документации к документации указано:
"An NSString or NSNumber that specifies the value of the NSComboBox."
Что это значит? Отмечу, что я могу привязать это к NSString
на моей модели, и он отобразит выбранный countryName
. Но я хочу привязать к самому объекту CountyInfo
! Прямо или через привязку к выбору на моем контроллере массива: как я могу настроить это?
Вы пробовали использовать NSValueTransformer? – macandyp
Привет @macandyp, да NSValueTransformer действительно сработает, и я могу получить такое же поведение, привязывая к строковому значению и вручную конвертируя в код. Просто кажется странным, что я должен написать дополнительный код для достижения этого и не могу просто привязываться к объекту (к чему я привык). Благодаря! – TheNextman
Я согласен, что это немного странно. Я знаю, что если вы привязываетесь к контенту и не привязываете значения содержимого, он будет ссылаться на описание вашего класса, чтобы заполнить строки для поля со списком. Я не знаю, помогает ли это вам. – macandyp