• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Advice on building a complex user custom control
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


References: 
 >Advice on building a complex user custom control (From: Oliver Charles <email@hidden>)

  • Prev by Date: Re: Animate the way a HUD panel appears.
  • Next by Date: Re: Animate the way a HUD panel appears.
  • Previous by thread: Advice on building a complex user custom control
  • Next by thread: Re: Advice on building a complex user custom control
  • Index(es):
    • Date
    • Thread