Selecting iPhoto images within a cocoa application - cocoa

I was wondering what the best way of selecting photos from iPhoto within a cocoa application? Right now, the open file dialogue doesn't allow me to go into the iPhoto library. How can I allow the user to go into that folder? IKPictureTaker was one option, but it appears that it allows the selection of one picture at a time. I'd like a user to be able to select 1 picture, or many.

Just use NSOpenPanel and set the allowed file types to the public.image UTI:
[panel setAllowedFileTypes:[NSArray arrayWithObject:#"public.image"]];
This will automatically add a Media section and Photos item to the sidebar in the open panel that allows the user to select from their iPhoto library.
Alternatively, you can use Karelia's open-source iMedia Browser.

There is a private API of Apple that contains exactly the control you want; this control is an ILMediaBrowserView and provides the exact same view than the one in NSOpenDialog.
If you are planning an AppStore release of your app don't use it but it can be useful.
The framework to integrate to your project to get that view is iLifeMediaBrowser.framework in /System/Library/PrivateFrameworks.
Let's all hope Apple brings the same view in the documented IK.

Related

How to make preferences menu item in the menu to display user preferences in os-x application? [duplicate]

I would like to create a preferences window like in the standard Mac OS X apps (Safari etc.). I have found resources like DBPrefsWindowController from back in 2008 that matches the Apple HIG.
Just wondering if there is a new way to accomplish this? I can't locate any standard windows in Interface Builder so I assume Apple doesn't provide those, nor can I locate a official Apple sample code for providing this standard UI.
Thank you
It seems DBPrefsWindowController is no longer available.
For now, I would recommend the up to date RHPreferences framework.
Available on GitHub. BSD Licensed.
It’s a simple and easy Preferences window controller with multiple tabs for your next Mac application.
It also provides:
Auto resizing between different sized tab views (With animation)
Custom NSToolbarItem support
Persistence of the last used tab
Support for placeholder NSToolbarItems (eg NSToolbarFlexibleSpaceItemIdentifier & NSToolbarShowFontsItemIdentifier)

Incorporate document features into shoebox app

I'm working on a shoebox (library style) app for Mac OS X which will incorporate a page view like in Apple's text edit sample code.
Since this is a shoebox app, I cannot simply generate a document-based Xcode project because I want the user to generate a new "canvas" to work on from within the app. Rather than having the user open a new document through an open command they create a new object in the navigation sidebar, or simply open an already created document also from the sidebar. I'm looking at a UI similar to Albums in iPhoto.
Is there an easy way to incorporate the features of document-based applications (i.e. page setup, print setup etc) into a non-document-based app without having to implement each method individually? Would anyone have any suggestions as to how to implement this otherwise?

Which controls to use for a Mac OS X application?

I developed some app for iPhone/iPad, so I know the basic concepts of Cocoa programming. Now I need to write a Mac OS X application. If you help me to choose the right controls to use, I'll study the Apple documentation reference for them.
I need:
a control to show a grid of thumbnails (png images); I'll be able to change the order of the thumbnails by dragging and dropping them;
a control to show a single image (e.g. UIImageView of Cocoa Touch) with the possibility to drag and drop another image over the first one; besides I need to move and resize the second image by dragging its corners (as if corners were "anchors");
a control to browse the media files on the Mac (possibly iPhoto images, iTunes DRM-free songs, or simply the content of a given folder), like the media browser of iMovie.
I use Xcode 4.2.
You can use NSCollectionView and co. for this. Xcode has a sample application somewhere in documentation (browsing various images) as well as tutorial on how to setup NSCollectionView yourself.
Check NSImageView. You can basically find any Cocoa control alternative to Cocoa Touch just by changing UI prefix to NS.
There is no such control per-se (unless IKImageBrowser for backgrounds), but using aforementioned NSCollectionView and some API for media files you should get around pretty quickly.
Also check ImageKit framework for images (for browsing, viewing and modifying).

Is this disclosure button like view a standard view?

There is a view used frequently in Mac applications, for example, Mail, iTunes: . But I didn't find it in the library. Is there any third-party implementation?
Not sure if it's included or not, but you can use any kind of icon inside a button.

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:

Resources