Search code examples
macoscocoajframemdi

Anything Equivalent to MDI Windows in Mac OSX XCODE


I Just started to develop an app for Mac OSX and I need to make a window which contains another child windows like this:

enter image description here enter image description here

In VB.NET is called MDI Window (Multiple Document Interface) and in Java is called JFrame if I'm not wrong, I need its equivalent in cocoa

thanks in advance for the support


Solution

  • MDIs are not supported by Cocoa on the Mac. While some applications, such as many Java apps, do have them on the Mac, bringing them to the Mac breaks a lot of behaviors that Mac users are used to:

    • They don't work well with multiple monitors
    • They make it harder to compare documents
    • They make it harder to drag and drop
    • They take away space on the screen that would have been unused by your application and could be used for something more useful
    • They break the ability to put multiple documents into full screen mode separately
    • They effectively hide documents from view in Mission Control
    • They force the user to manage the size and location of what is effectively your own app's "mini desktop" when they should be focused on their own work.

    There may be other things that MDI's negatively affect as well.

    I strongly suggest reading the OS X Human Interface Guidelines (or 'HIG' for short) to familiarize yourself with Mac UI fundamentals.

    Mac users are picky about UIs and while they may not go out of their way to thank you for understanding Mac UI fundamentals, they will mob you with negative reviews for releasing something that feels less than a "true" Mac app.

    Learn and design to the native UI language, it will be well worth it and you'll spend far less time fighting the OS and Cocoa.