Presenting multiple views sequentially - OS X - cocoa

Following up on this question: Kiosk Applications - OS X programming - Multiple monitors
I'm an iPhone programmer just starting out with OS X programming, and I'd like to know how I can present multiple views sequentially.
What I basically need to do is - Have a welcome screen with a button called "Click here to continue". Once the user clicks that button, it needs to completely replace the view with another view presenting a table view of options that the user can choose from.
I actually need to create a couple more screens, but any help on how to get this basic setup can help me get started. The problem I'm having is almost all the mac application source code available on Apple's website seems to be oriented towards single window applications popping up multiple windows for any additional tasks.
Thanks,
Teja

I enjoyed using M3NavigationView from Martin Pilkington http://www.mcubedsw.com/dev
Basically it pushes and pops NSViewControllers on a stack and allows you to animate between them. I am doing this for a quick setup wizard on an app I am working on.

Make a tabless tab view, and put each of your views into one of the tab view items. In Interface Builder, each tab view item will have a view automatically, so you just need to put all of the subviews for that tab into that view.
You can then switch tabs from code—e.g., in response to the “Next” button.

Related

Should a non-document based app use an application modal dialog or sheet?

I have a single window based cocoa application. It does not have any documents etc. Essentially it is a utility app. I need to show a modal dialog box, basically a connection box to which has an ip, port, connect controls.
I read somewhere that modal dialogs are not recommended in cocoa based apps. Is that correct ? So should I use document based dialog ? I am quite confused about it, any guidance on that subject would be appreciated.
Modal dialogs can get lost in presentation (showing up on the wrong desktop/space, full screen issues, etc). Sheets tie into the window, so they always display properly.
Full guidance is available in the Human Interface Guidelines https://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/Windows/Windows.html#//apple_ref/doc/uid/20000961-TP9

Which Xcode template should I use?

I want to make an application which shows you the schedule for your school.
It should mainly display the current day and allow you to scroll left and right for switching to the day before or the day after the current selected day.
There should also be a settings view.
I'm new to making iOS apps, so which Xcode template should I use?
I think Page-Based Application seems to fit the most, however is this right?
I don't want the page curl transition, just a normal scrolling transition.
I typically start with a Tabbed Application or Master Detail view, but normally just a Tabbed Application and put in a tableview wrapped in a navigation controller. The tabs allow me to structure out different sections of the app and using table views gives you the nice slide in of new views.
Hope that makes sense.

Drop down menu like the default iPad application menus

I'm currently working on my first iOS application to run on the iPad, and I've come across a problem. I have been asked to implement menu's similar to the ones in the default applications such as when you click on the "Calendars" button in the top left of the calendars app.
Only issue is, I cant seem to find a standard UI object that looks like these, with the arrow connecting the menu to the button etc. Is this a standard UI component that I should be able to use, or will I have to imitate them by creating a custom object?
Thanks for any help.
That is a UIPopoverController. There isn't an Interface Builder control for this. You need to create one programmatically:
UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:someTableViewController];
See the documentation for more information and sample projects, specifically ToolbarSearch:

Kiosk Applications - OS X programming - Multiple monitors

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
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.

Use multiple WebBrowser tabs for 1 flex Application

I'm developing a flex application to view charts and statistic data about real-time stock price. The requirement is that 1 user can view multiple windows (or panel, or canvas) of multiple stock symbols at the same time.
I want to have 1 button, when I click at that button, a new panel will be pop up in a new WebBrowser tab. 1 user can open 5 or more panels like that in 5 more webbrowser tab to see 5 different stocks. And all 5 panels must be managed by the main Application. So that the Application can send stock price data to those 5 panels.
After days searching, I still cannot find out a way to do that, please suggest me something?
Thank you a lot,
Henry
If the requirement is that you use tabs in a browser, then you've got some fun ahead of you.
Only way I could see this working, is if the main application fired off URL Requests for a secondary app which it then communicated with through a LocalConnection.
There are a couple of easier ways if you relax the requirements a little. Using URL parameters means you could pass the stock you are looking to follow into each new instance of the application without needing LocalConnection.
Of course, you could just have a tabbed interface inside your Flex app, and not require new browser windows at all!
I would definitely not go about this way.
Creating multiple tabs is OK, but not when you need full control and integration over these parts.
I would create floating panels in the same application with a tabbed navigation or something of this sort.
Take a look at this image:
as you can see, the user is seeing one screen, but he has also 2 tabs (windows) at the bottom which he can expand or collapse.
the context is the same context, it is the same application.

Resources