2015-07-03 2 views
0

Я подклассифицирую NSTextField, чтобы пользователь мог увеличивать/уменьшать целочисленное значение с помощью клавиш курсора вверх и вниз. Он отлично работает через своего делегата, но настройка состояния пользовательского интерфейса через setIntegerValue: не обновляет привязку базового значения через привязки какао.Как узнать, с каким объектом связан NSControl через привязки какао

Вместо обновления элемента управления мне нужно обновить модель, поэтому мне нужно найти объект, к которому привязан элемент управления, и используемый путь ключа.

Я не могу найти нигде, как это сделать, поэтому я перегрузил метод - bind:toObject:withKeyPath:options: моего подкласса NSTextField, где установлено привязку и где я вижу как наблюдаемый объект, так и его путь к ключу, но, безусловно, я 'm дублируя информацию, которая уже доступна где-то в элементе управления.

Есть ли способ получить объект и путь ключа, с которым элемент управления связан с помощью привязок Cocoa, без взлома?

Буду признателен за любую помощь.

ответ

0

Да, есть лучший способ:

- (NSDictionary *)infoForBinding:(NSString *)binding 

словарь с информацией о связывании, или ноль, если связь не связан. Словарь содержит три пары ключ/значение: NSObservedObjectKey: связанный объект, NSObservedKeyPathKey: связанный с ключом путь, NSOptionsKey: словарь с параметрами и их значениями для привязок.

+0

Спасибо. Я видел это, но не понял, что могу просто передать значение «@» для получения правильной привязки. Сейчас работает отлично. –

Смежные вопросы