Parece que debería ser fácil pero me falta algo. Tengo una aplicación basada en documentos. También he construido un nuevo XIB que tiene un NSTableView y tres botones en él que pretendo mostrar una lista de archivos anteriores. Deseo que se muestre este XIB en lugar de la ventana del documento cuando se inicia la aplicación por primera vez. Una vez que el usuario selecciona un archivo antiguo o pulsa el botón "Nuevo", deseo ir a la ventana del documento. Esto es muy común y lo he visto usado con bastante frecuencia.Iniciar una aplicación basada en documentos Cocoa muestra la ventana de selección primero
En mi intento de hacer que esto funcione, modifiqué el archivo project-info.plist y cambié el nombre de la base de archivos NIB principal de MyDocument a mi nombre de selección XIB. Esto hace que la aplicación muestre la ventana Selección en lugar de la ventana MyDocument. Parece que no hay problema hasta este punto.
En mi ventana de selección he configurado mi vista de tabla y un controlador de matriz y un controlador de ventana personalizado solo para este XIB. Establecí el propietario del archivo en el controlador de la nueva ventana y vinculé la propiedad de la ventana del controlador de ventana a la ventana y la propiedad de delegar de la ventana al propietario del archivo, así como los botones "Seleccionar", "Cancelar" y "Nuevo". Nada está obligado a NSApplication. Pero lo extraño es que cuando corro esta aplicación parece querer conectar estos controladores a NSApplication con el error (lo mismo para los otros dos botones):
No se pudo conectar el selectButton acción: para apuntar de la clase NSApplication
También muestra un error que NSApplication no cumple con Key-Value para el outlet que contiene referencia a mi matriz. El controlador de la matriz, la ventana y los botones no están vinculados a NSApplication, sino al nuevo controlador de la ventana. Hubiera esperado que si hubiera algún problema, NO mencionaría NSApplication sino el controlador de ventana al que están vinculados los controladores.
¿Alguien sabe lo que está pasando aquí? ¿Es este un problema de acción de objetivo porque cambié el "Nombre de la base de archivos NIB principal" de "Menú principal" a "Selección"? Si no se supone que debo cambiar esto, ¿cómo puedo obtener Cocoa para permitirme mostrar una pantalla de selección antes de mostrar la ventana del documento?
Cualquier ayuda es muy apreciada. Rob
Esto ayudó mucho. Algo de lo que me sorprendió es que las aplicaciones de documentos que usan datos centrales no crean automáticamente el delegado de la aplicación. Una vez que creé el delegado, pude detener la creación automática y luego abrir mi ventana inicial. ¡Muchas gracias! – Rob