On Feb 4, 2012, at 16:17 , Graham Cox wrote: > The way I've done this is to handle the focus ring in the view's -drawRect > method. You need to focus on the superview so you can draw outside your > frame, but that's not a problem - just do it after you've drawn the rest of > your normal content.
The one issue this doesn't solve is that of making room around the view to draw the focus ring. If one or more edges of the view are flush with the edge of the window, the exterior ring looks ugly. In the past, I've sometimes taken the approach of drawing the focus ring *inside* the view. (Use the view bounds rect, inset by 1.0, to draw the focus ring, and don't lock focus on the superview, of course.) It looks pretty good -- it's slightly transparent so it doesn't obscure the content much. However, with this approach, there's apparently no way to take advantage of the spiffy new Lion methods for focus rings. It's also less than ideal during an inertial scroll "bounce". > The only other thing I've found necessary is to track whether the focus ring > needs an update or not by using -setKeyboardFocusRingNeedsDisplayInRect:[self > bounds] which I call from -becomeFirstResponder and -resignFirstResponder. I think you also need to force an update when the app is deactivated. The window is still the key window, but the focus ring shouldn't be drawn. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com