cocoansdocumentdocument-based

Multiple Documents in a Single Window in Cocoa


I want to write an application which may have multiple documents in a single window via a tabbed interface. Should I avoid the NSDocument architecture (the Cocoa Document-based Application template)? As far as I can tell, it supports only one or more window per document but not vice versa.

I have been wrestling with this question for a while and have already built much of my application on the NSDocument architecture but I cannot figure out a good way to associate multiple documents with a single window.

EDIT: I want to have project document windows in addition to basic document windows. At this level of complexity, would it still be worth hacking the NSDocument architecture? Did Apple write Xcode (which works this way) using the NSDocument architecture?


Solution

  • I tried shoehorning an NSDocument app into a single window tabbed interface a few years ago, and ended up so frustrated after a few months I went back and refactored out the document architecture pieces. It's not impossible, but you end up working around so many problems that the final result barely resembles a proper NSDocument app. It's better to just rewrite the bits you do need, than end up with a lot of code just to subvert the Cocoa frameworks.