Aunque he buscado mucha información sobre Cocoa Bindings, sigo estando relativamente insatisfecho con la información que tengo y tengo. Parece que el tema es un tanto problemático para muchos y muchos simplemente están evitando este patrón, que creo que no debería ser.Por qué usar NSObjectController
Por supuesto, puede parecer que las consolidaciones son a veces demasiado complicado o tal vez diseñado con demasiada sobrecarga ...
Sin embargo, tengo una pregunta muy directa y específica: ¿Por qué se necesita NSObjectController si puedo establecer fijaciones ¿directamente?
Por ejemplo, el código:
[controller bind:@"contentObject" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
[slicesTextField bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
[stepperControl bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
Es exactamente lo mismo que:
[slicesTextField bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
[stepperControl bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
En mi caso aquí, estamos hablando de propiedad de la clase dentro de la cual todo lo que está sucediendo, por lo Supongo que la necesidad de NSObjectController es cuando:
ruta de acceso clave para el controlador es el objeto y el enlace de otros controles es necesario a sus propiedades, no a su valor como con primitivas y envoltorios a su alrededor es el caso (numberOfPiesSlices en mi caso es NSInteger)
o cuando se necesita vincular desde otros objetos externos, no solo entre objetos dentro de uno
¿Alguien puede confirmar o rechazar esto?
Los enlaces de los elementos de la UI pueden vincularse a un controlador de objeto o a otra cosa, como se dice en la pregunta. Entonces, ¿qué código elimina un controlador de objetos? –
El código donde configuró la vinculación, en primer lugar, puede hacerlo en IB con un NSObjectController. ¿A menos que me equivoque y pueda configurar enlaces en IB con objetos de controlador que no sean *? Feliz de ser corregido si es así. – jrturton
No puede configurar un enlace en un objeto simple en IB o el editor de punta, pero puede enlazar * a * un objeto simple. ¿Qué propósito hay para crear un controlador de objeto que no sea vincularlo, y si no hay ninguno, por qué no vincular el control directamente al objeto que necesita para respaldarlo? –