Un XIB es un contenedor para objetos, no es igual a una ventana. No puede centrar un XIB, solo puede centrar una ventana contenida en un XIB.
Además, los objetos en el XIB se crean cuando lo carga. No pasa un objeto como propietario que luego representa uno de los objetos en el XIB, en su lugar utiliza IBOutlets para obtener referencias a los nuevos objetos creados al cargar el XIB y luego puede interactuar con ellos.
El objeto Propietario del archivo es un objeto especial en XIB, ya que es el único objeto que no se crea y que puede especificar pasándolo a loadNibNamed:owner:
. Es su puerta de enlace entre los objetos creados por XIB y su aplicación.
Normalmente, el objeto propietario es algún tipo de clase de controlador. Establezca la clase Owner del archivo en Interface Builder en su clase de controlador, luego defina algunos IBOutlets en la clase, se mostrarán en Interface Builder en el propietario del archivo y podrá conectarlos a ellos en el XIB.
Finalmente, cuando pase su objeto controlador a loadNibNamed:owner:
, Cocoa conectará sus IBOutlet a los objetos recién creados y podrá usarlos para interactuar con ellos, p. Ej. para centrar una ventana en tu XIB.
Estaba haciendo todo lo que dijiste, excepto "conectar la ventana de salida del propietario del archivo". Una vez que hice eso, todo funcionó. ¡Gracias un montón! +1 y Marque. –
Asegúrese de desmarcar la propiedad 'Restaurable' de la ventana en IB. –
@KeithSmiley ¿Qué editor es la propiedad 'Restaurable', o esto ya no se aplica a Xcode 5.x? –