Текстовое поле, привязанное к контроллеру массива, не меняет значение в массиве - PullRequest
0 голосов
/ 27 мая 2011

У меня есть текстовое поле, которое я использую, чтобы показать «общую стоимость», вычисленную из нескольких других текстовых полей.Когда я получаю controlDidEndEditing:, я вычисляю эту общую стоимость и помещаю ее в поле Общая стоимость, используя setDoubleValue:.У меня есть значение поля Total Cost, привязанное к контроллеру массива, и если я изменю значение поля вручную, оно будет сохранено в массив контроллера.Однако если я сделаю это программно, то отображение поля изменится, но массив и значение, отображаемые в моей таблице, не изменятся.

В чем причина?

1 Ответ

0 голосов
/ 27 мая 2011

Если у вас есть связанный элемент управления, такой как textField, изменение его состояния с помощью метода, подобного setStringValue: не сработает механизм привязки, чтобы вытолкнуть изменение в цель привязки.Это просто часть дизайна привязок.Если вы хотите эффективно изменить значение textField программно, вам нужно изменить его в объекте модели, используя установщик для ключа, к которому он привязан, или используя setValue: forKey.Поэтому, если у вас есть nameTextField, связанное с person.name, вам нужно вызвать [person setName: newName] или [person setValue: newName forKey: @ "name"].

...