2010-09-26 18 views
5

He aprendido Cocoa + Objective C principalmente para el desarrollo de iPhone, y necesito utilizar este conjunto de habilidades para construir una aplicación de kiosco muy básica para OS X en un par de días. La aplicación es básicamente la siguiente:Aplicaciones Kiosk - Programación OS X - Monitores múltiples

  • La configuración tiene dos monitores de pantalla táctil, la aplicación debe estar ejecutando el modo de pantalla completa. El monitor de la derecha actúa como una vista detallada de una lista de opciones a la izquierda. Hay 3 opciones en el monitor de la izquierda. Escogiendo uno reproducirá una película a la derecha, Picking two lo llevará a un cuestionario, Picking 3 desplegará un Webview.

  • El usuario no puede usar ninguna otra operación en la PC. (He empezado a leer sobre el desarrollo de aplicaciones de OS X y se dio cuenta de cacao proporciona un modo de pantalla completa para estos tipos de aplicaciones)

Mis preguntas son brevemente

  • En primer lugar, cualquier ayuda sobre cómo llegar mi aplicación ejecutándose en modo kiosco es muy apreciada! Estoy un poco deprimido (¡2 días para hacer todo esto, hablar sobre la vida en startups!), Así que el contenido completamente estático está bien, estoy un poco preocupado acerca de cómo OS X manejará el modo de pantalla completa si la aplicación se ha escrito en un tamaño de ventana más pequeño. (Escala, etc.)

  • A continuación, suponiendo que hay dos ventanas, una en cada pantalla, ¿cómo trato el enfoque? Si el usuario de repente se aburre con el contenido de la derecha y toca la ventana de la izquierda, el primer toque probablemente actuará para enfocar la ventana y el segundo actuará como un clic en el botón. Me gustaría evitar este escenario!)

  • ¿Cuáles son los paradigmas de navegación en OS X? Supongo que no es tan simple como [navigationController pushViewController]? En resumen, ¿cómo visualizo una nueva vista sobre una vista existente?

Gracias,
Teja

Respuesta

6

En primer lugar, cualquier ayuda sobre cómo conseguir mi aplicación se ejecuta en un modo de pantalla completa es muy apreciada!

http://developer.apple.com/library/mac/#technotes/KioskMode/

A continuación, asumiendo que hay dos ventanas, una en cada pantalla, ¿Cómo puedo lidiar con el foco? Si el usuario de repente se aburre con el contenido de la derecha y toca la ventana de la izquierda, el primer toque probablemente actuará para enfocar la ventana y el segundo actuará como un clic en el botón. Me gustaría evitar este escenario!)

Click-through es el valor predeterminado. Si tiene vistas personalizadas, responda acceptsFirstMouse: con YES para admitir clics en ellas.

¿Cuáles son los paradigmas de navegación en OS X?

Normalmente basado en la ventana o basado en la fuente. Su aplicación es atípica.

Supongo que no es tan simple como [navigationController pushViewController]?

Es más simple y más complejo al mismo tiempo. No hay pila para administrar; puede tener varias ventanas abiertas al mismo tiempo. Se vuelve más complejo cuando quieres todo en una ventana (como en tu aplicación de modo kiosco), en cuyo caso terminas usando vistas de pestañas (con o sin pestañas) para permitir al usuario cambiar de una vista a otra.

En resumen, ¿cómo se muestra una nueva vista sobre una vista existente?

Usted no lo hace. La superposición de una vista sobre otra en la misma supervista apenas se admite en AppKit, y casi siempre es incorrecta.

En una aplicación normal, debe crear varias ventanas. En una aplicación como la tuya, necesitarás usar vistas de pestaña. Los controladores de vista pueden ayudarlo aquí, aunque NSViewControllers es muy diferente de UIViewControllers (como mencioné, sin pila de vistas); son más similares a NSWindowControllers.

+0

Gracias! Esta es una gran ayuda para comenzar, pero aún tengo bastante que descubrir. Volveré con preguntas más específicas a medida que avance. –

+0

Lamentablemente, esta publicación hace * mucho * más sentido leerla después de luchar con NSViewControllers, NSWindowControllers por un día. ¡Gracias de nuevo! –

Cuestiones relacionadas