Re: How to draw keyboard focus ring around a custom control?
Re: How to draw keyboard focus ring around a custom control?
- Subject: Re: How to draw keyboard focus ring around a custom control?
- From: Alastair Houghton <email@hidden>
- Date: Wed, 11 May 2005 23:29:29 +0100
On 11 May 2005, at 21:06, Sean McBride wrote:
Hi all,
I have a custom NSView subclass and want to draw a focus ring
around it
when it's first responder. I've searched the archives and web and
found
many conflicting ways of doing it. Most involve a C function
NSSetFocusRingStyle(), which I find weird. I see new in 10.3 is
setFocusRingType: but I don't see anything like drawFocusRing:.
(For the
life of me, I can't find any definitive Apple docs on this subject.
Grr.
Must, resist, ugre to rant :) )
In Carbon there is a nice function, DrawThemeFocusRect(), that you
give a
rect and it draws the focus ring.
Surely there is an easy way in Cocoa? :)
Yes, although it's a bit counter-intuitive. You need to use
NSSetFocusRingStyle() to apply a special style to the graphics
context. For instance:
NSRect focusRect = ...;
...
[NSGraphicsContext saveGraphicsState];
NSSetFocusRingStyle (NSFocusRingOnly);
// You need to *fill* the path (see the docs for
NSSetFocusRingStyle())
[[NSBezierPath bezierPathWithRect:focusRect] fill];
[NSGraphicsContext restoreGraphicsState];
Kind regards,
Alastair.
--
http://www.alastairs-place.net
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden