Re: Advice on building a complex user custom control
Re: Advice on building a complex user custom control
- Subject: Re: Advice on building a complex user custom control
- From: Graham Cox <email@hidden>
- Date: Mon, 2 Mar 2009 22:20:55 +1100
On 02/03/2009, at 12:22 PM, Oliver Charles wrote:
I've started learning Objective-C and Cocoa, and while I'm fairly
experienced with programming, GUI programming is quite new to me.
I'm working on a small game engine, and as such, I want to create a
level editor for the game. I love the old style Doom level editors, so
that's what I'm going for [1]. Notice in that screenshot the amount
the user can interact with - moving vertices on the grid, creating
lines between vertices, adding/removing objects, etc.
At the moment, I have a main MapView control, which creates vertices
in an NSArrayController. I have 2 ways of viewing these vertices - one
is to handle rendering them directly in the MapView, and another
approach creates a new VertexView for each vertex, and adds it as a
subview of the MapView. From what I've read online, this is not going
to scale beyond maybe 50 vertices, so I don't think this is an
approach. However, handling *everything* in the MapView itself feels
like it drastically reduces the cohesion of the control.
How do people create controls like this? I suppose similar controls
(to a slightly lesser extent, may be helpful if you don't understand
the screenshot below) would be things like OmniGraffle and the Core
Data editor in Xcode.
This could be a good candidate for DrawKit, my framework for vector
drawing. You'd need to take a look and see how closely it fits your
needs but it handles all the interactive creation of objects for you.
It's designed to be scalable and doesn't create a subview per object
(which is crazy talk, BTW :). It might seem like overkill but you are
not obliged to use everything, and the whole framework adds only about
3.5MB to an app.
Setting up a complete view with interactive drawing tools takes a few
minutes' work in IB, though be prepared to write a fair bit of export
code to convert the "drawing" into your map data. Of course it has a
learning curve on top of Cocoa itself, but doesn't need a lot of set-
up to get working.
http://apptree.net/drawkit.htm
--Graham
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden