Я хотел бы иметь возможность использовать привязки для синхронизации моего графического интерфейса пользователя с динамически загружаемым объектом, но как только я заменяю рассматриваемый объект другим объектом того же типа, привязки разрушаются, и графический интерфейс перестает обновляться. Вот код, который поможет вам понять, что я имею в виду:
В моем интерфейсе у меня есть переменная экземпляра для хранения рассматриваемого объекта:
@interface AppDelegate : NSObject {
CustomObject *anObject; // This object has a "NSString *textValue" property
}
Затем в моей реализации я создаю экземпляр объекта:
- (id) init {
self = [super init];
if (self != nil) {
anObject = [[CustomObject alloc] init];
}
return self;
}
В Интерфейсном Разработчике у меня есть "значение" текстового поля, привязанного к "anObject.textValue".
Когда я вызываю этот метод:
[anObject setValue:@"Changed anObject.textValue!" forKey:@"textValue"];
затем текстовое поле обновляется, чтобы отразить новое значение.
Но то, что я хочу сделать, это отобразить значения из объекта, который передается после выполнения некоторой работы в другом месте приложения. Итак, что я сделал, это было:
- (void)setCustomObject:(CustomObject *)newObject {
anObject = newObject;
}
Теперь результат этой операции, по-видимому, нарушает привязки графического интерфейса пользователя к экземпляру CustomObject (anObject), что кажется логичным, учитывая, что связанный объект был заменен другим экземпляром.
Я хочу знать, есть ли способ сохранить функциональность привязок с динамически создаваемым экземпляром CustomObject без необходимости повторной привязки каждого элемента управления программным способом через bind:toObject:forKeyPath:options:
или аналогичный метод, который потребует (насколько мне известно) использовать IBOutlets, чтобы овладеть элементами управления, чтобы затем связать их со значениями в моем новом объекте (IMO, это сделало бы привязки бесполезными в моей ситуации). Это единственное решение или есть лучший, более чистый способ справиться с этим?
Я прочитал много полезных документов на developper.apple.com и в других местах, касающихся привязок, но я не нашел ничего, что могло бы говорить об этом конкретном случае.
Заранее спасибо за ваше время!