OK, I implemented Graham's solution and it works very well in my situation. The 
PDFView in question is not flush with any of the edges of a window, so I don't 
need to worry about that here. 

Thanks, Graham. Thanks, all!

Martin

On 5, Feb, 2012, at 02:20 AM, Quincey Morris wrote:

> 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

Reply via email to