У меня есть два окна: окно A загружается из NIB; и Window B создается программно.bind: toObject: withKeyPath: options: односторонняя привязка?
Оба окна имеют NStextView: атрибутная строка текстового поля в окне A связана с свойством text
модели с использованием IB; в то время как атрибутная строка textview в Window B привязана к свойству модели text
с использованием метода -[NSObject bind:toObject:withKeyPath:options:]
.
[textview bind:@"attributedString" toObject:obj withKeyPath:@"text" options:nil];
Вот странная вещь: TextView в Window B действительно связан с obj.text
, но изменения в TextView никогда не обновляется до obj.text
. Но, если бы я вносил изменения в текстовое окно Window A, соответственно обновлялись obj.text
и текстовое окно в окне B.
Итак, я думаю, метод -[NSObject bind:toObject:withKeyPath:options:]
предназначен только для односторонней привязки. Я не мог найти ясного объяснения в документах Какао. Есть ли у кого-нибудь опыт в этой проблеме? Как реализовать двустороннюю привязку в коде?
Это все еще не работало для меня. Я нашел ответ (для моего случая) здесь -> http://stackoverflow.com/questions/1169097/can-you-manually-implement-cocoa-bindings –
Я не уверен в релевантности связанного вопроса выше , Связывание, упомянутое здесь, находится между двумя объектами NSControl - не требуется реализация обязательной привязки. – stevesliva