tags:

views:

46

answers:

1

Hi,

I've learnt Cocoa + Objective C primarily for iPhone development, and I need to utilize this skill set to build a very basic kiosk application for OS X in a couple of days. The application is basically as follows :

  • The setup has two touch screen monitors, the app must be running full screen mode. The monitor on the right acts as a detail view to a list of options on the left. There are 3 options on the monitor on the left. Picking one will play a movie on the right, Picking two will take you to a quiz, Picking 3 will pull up a Webview.

  • The user may not use any other operations on the PC. (I've started reading about OS X application development and realized Cocoa provides a kiosk mode for these types of apps)

My questions briefly are

  • Firstly, any help on how to get my app running in a kiosk mode is much appreciated! I'm under a bit of a time crunch (2 days to get all this done, talk about life in startups!), so completely static content is fine, I'm slightly worried about how OS X will handle full screen mode if an app has been written in a smaller window size. (Scaling etc.)

  • Next, assuming there are two windows, one on each screen, how do I deal with focus? If the user suddenly gets bored with content on the right and touches the window on the left, the first touch will probably act to focus the window and the second will act as a click on the button. I'd like to avoid this scenario!)

  • What are the navigation paradigms in OS X ? I'm guessing it's not as simple as [navigationController pushViewController]? In short, how do I display a new view over an existing view?

Thanks,
Teja

+2  A: 

Firstly, any help on how to get my app running in a kiosk mode is much appreciated!

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

Next, assuming there are two windows, one on each screen, how do I deal with focus? If the user suddenly gets bored with content on the right and touches the window on the left, the first touch will probably act to focus the window and the second will act as a click on the button. I'd like to avoid this scenario!)

Click-through is the default. If you have any custom views, respond to acceptsFirstMouse: with YES to support click-through in them.

What are the navigation paradigms in OS X ?

Typically either window-based or source-list-based. Your application is atypical.

I'm guessing it's not as simple as [navigationController pushViewController]?

It's simpler and more complex at the same time. There is no stack to manage; you can have multiple windows up at the same time. It gets more complex when you want everything in one window (as in your kiosk-mode app), in which case you end up using tab views (with or without tabs) to enable the user to switch from one view to another.

In short, how do I display a new view over an existing view?

You don't. Layering one view over another in the same superview is barely supported at all in AppKit, and almost always wrong.

In a normal application, you should make multiple windows. In an app like yours, you'll need to use tab views. View controllers may help you here, although NSViewControllers are very different from UIViewControllers (as I mentioned, no view stack); they're more similar to NSWindowControllers.

Peter Hosey
Thanks! This is a great help for me to get started, but still have quite a bit to figure out. Will get back with more specific questions as I go along.
Tejaswi Yerukalapudi
Unfortunately enough, this post makes *much* more sense reading it after struggling with NSViewControllers, NSWindowControllers for a day. Thanks again!
Tejaswi Yerukalapudi