Soy nuevo en el Cacao y no entiendo el concepto de File's Owner de una .archivo nib.

Aquí es la manera en que yo iba a ver las cosas :

  • Considerar un archivo myNibFile.nib archivo que describe cómo una ventana se ve.

  • Ahora, quiero conectar una ventana real a este .archivo nib. Así, puedo crear una clase myWindow, que es una subclase de NSWindowController. Y, para hacer esta conexión, puedo cambiar el init método como este:

         -(id)init
         {
             [super initWithWindowNibName:@"myNibFile"];
             return self;
         }

Así, entiendo que cuando se crea una instancia de myWindow, el «sistema» va a ir a buscar en el .archivo nib y crear la adecuada objeto.

Así, mi pregunta son :

  • ¿por qué tengo que especificar que el File's Owner de mi .archivo nib es myWindow ? No es redundante ?

  • Supongo que significa que realmente no se entiende lo que el File's Owner. ¿Qué es ? ¿Por qué el .archivo nib tienen que pertenecer a algo ? No se puede ser «en algún lugar» de mi «aplicación» y cuando es necesario, el «sistema» va allí y lo uso ?

Gracias por ayudarme a ver más claramente en estos nuevos conceptos !

InformationsquelleAutor Colas | 2013-03-06

4 Comentarios

  1. 59

    Dos puntos a recordar:

    • El propietario del Archivo es el objeto que se carga en la punta, es decir, que el objeto que recibe el mensaje loadNibNamed: o initWithNibName:.
    • Si quieres acceder a cualquiera de los objetos en la punta después de la carga, se puede establecer una toma de corriente en el propietario del archivo.

    Así que creó un lujo ver con un montón de botones, subvistas etc . Si desea modificar cualquiera de estos puntos de vista /objetos en cualquier momento después de la carga de la punta DE la carga de objeto (normalmente un vista o en la ventana controlador) establecer puntos de venta para estos objetos para el propietario del archivo. Es así de simple.

    Esta es la razón por la que por defecto todos los de la Vista de los Controladores o Ventana de Controladores de actuar como propietarios de los archivos, y también tiene salida a la ventana principal o del objeto de la vista en la punta de archivo: porque duh, si usted es el control de algo que definitivamente se necesita para tener una salida a lo que usted puede enviar mensajes a la misma.

    La razón por la que es llamado el propietario del archivo y le da un lugar especial, es porque a diferencia de los otros objetos en la punta, el propietario del archivo es externo a la punta y no es parte de él. En realidad, sólo está disponible cuando la punta está cargado. Así que el propietario del archivo es un sustituto o proxy para el objeto real que más tarde se carga en la punta.

    Espero que hayas entendido. Voy a aclarar cualquiera de los puntos si usted lo pide.

    • Gracias por la respuesta. El último párrafo es el más importante para mí: el Propietario del Archivo no es parte de la punta. La respuesta de ‘usted tiene salidas…’ no es válido para mí, porque de los establecimientos que se puede pertenecer a un objeto que se agrega a usted de PUNTA. Mi idea de que el vínculo puede ser (y de hecho tener) de un objeto y de una PUNTA a través del código (loadNibNamed, etc.) y así que usted no necesita el enlace redundante File's Owner es cierto, pero entonces : ¿cómo va a hacer para conectar los puntos de venta para este objeto ? Responder a este punto.
    • Yo estaba a la espera de una respuesta satisfactoria ! Tal vez usted podría reorganizar su respuesta a destacar en el último párrafo. Gracias. Espero que mi último comentario es clara.
  2. 6

    Lo fundamental es entender que el Interface Builder le permite crear objetos que se conectan automáticamente a cada uno de los otros, sin ningún esfuerzo de parte de su programa. Usted puede crear instancias de objetos de todo tipo, incluyendo los no-ver, y que pueden estar relacionadas entre sí; por ejemplo, podría crear la instancia de una vista de tabla de datos de origen junto con la propia vista, etc. Este mecanismo se utiliza comúnmente para crear una Aplicación Delegado en el Menú Principal de PUNTA.

    Sin embargo, ya que todo se hace a través de drag&drop, parece que no hay manera que usted puede formar una conexión entre la PUNTA de los objetos y de los objetos que ya existen en su aplicación, con excepción de uno.

    Cuando el código se carga el archivo NIB, usted tiene la opción de especificar exactamente uno objeto de que la PUNTA se consideran como «Archivos de Propietario». Este es el marcador de posición que se vea dentro de la Interfaz del Generador, ya que se puede representar cualquier objeto dentro de la aplicación, la Interfaz de Generador no puede saber qué acciones/puntos de venta están disponibles en él. Esta es la razón por la que usted puede modificar la «clase» de los Archivos Propietario, en la pestaña Atributos.

    Archivos Propietario no representan realmente a la «propiedad» o «paternidad». Lo que representa es «el objeto de que la carga esta MINA».

    • Todavía no entiendo, desde cómo realmente me llame la PUNTA de mi programa es con initWithWindowNibName:@"myNibFile". Con esta instrucción, puedo crear la conexión entre la PUNTA y otros objetos.
  3. 0

    Del Propietario del archivo es un marcador de posición en IB para todos los puntos de venta y acciones en el código son «vinculables» en IB, usted puede controlar-arrastre para conectar cosas en la pantalla el código.

  4. 0

    Del Propietario del archivo en el Interface Builder es por lo que sabe el tipo de objeto de la madre. Este se usa de dos maneras. En primer lugar, en el Interface Builder para que IB sabe lo que tomas y las acciones están disponibles para usted para conectarse. En segundo lugar es utilizado por la aplicación del marco para saber cómo volver a conectar las cosas para el resto de su código una vez que la punta de archivo es cargado.

Dejar respuesta

Please enter your comment!
Please enter your name here