В большинстве примеров, которые вы читали, вы, вероятно, видели что-то вроде этого:
[myTextfield setStringValue:myString];
теперь в этом случае убедитесь, что контроллер обновляет текстовое поле напрямую, однако, поскольку myTextfield обычно является IBOutlet, это может быть любое текстовое поле в вашем представлении, или даже ноль. вполне возможно, что даже не нужно знать, что это поле NSText просто потому, что оно отвечает методу setStringValue. В этом смысле существует разделение между контроллером и представлением.
Теперь в ваших комментариях выше вы были обеспокоены разделением обязанностей в MVC, но не особо упомянули модель. С помощью привязок Какао вы можете напрямую связать траектории с моделями ключей, в этом случае модели вообще ничего не нужно знать о представлении.
MVC - это немного двусмысленная концепция без четкого определения. Это может означать разные вещи для разных людей. Для меня это означает, что представление имеет представление о контроллере (через выходы или привязки), ограниченное знание модели (через привязки). Контроллер обладает полным знанием модели и ограниченным знанием вида (через розетки). Наконец, модель имеет нулевое знание вида и в идеале не знает контроллер.
Что касается вашего второго вопроса, я не использую j2ee, но я думаю, что вы можете достичь того, что вы хотите, если ваш контроллер обновит контекстный ivar (возможно, NSDictionary), а затем, по вашему мнению, свяжется с этим контекстом с помощью keypath , Однако нет никакой необходимости в том, чтобы обернуть все, привязки очень гибки, и вы можете привязать к любому свойству.