Ken Ferry wrote:
On Thu, Mar 6, 2008 at 9:59 AM, John Stiles <email@hidden> wrote:
On Leopard, this solution works perfectly. I get a chance to update my
view right before it draws, which is exactly what the doctor ordered.
Any way to get this on Tiger or am I just out of luck?
Out of luck. Well, you can do the work in -drawRect:, but if any of
the work you do invalidates display, it'll be delicate code (meaning
it may be hard to get it to work right, or relatively fragile between
releases). It might be good to implement a -resolveInvalidatedStuff
method, then call it from both -viewWillDraw and -drawRect:. Then, on
Leopard, you'll never actually be doing any work in drawRect: because
you will have already resolved all state. If it works on Tiger at
that point, great, and if not, any further tricky work you do is
targeting an unchanging OS. Make sense?
Hmm. What I'm doing is almost certainly going to invalidate display, so I
am probably just out of luck for Tiger.
If there was some bulletproof solution that could be made to work under
Tiger, that would have been nice, but it's not a big deal. I don't currently
anticipate this code being used under Tiger. I just like to write things so
that we could use them as far back as reasonably possible, in case plans
change. I guess if that does happen, I can bring back the old code and Tiger
users can live with the controls-changing-after-display behavior that we had
before.