Re: PDFView drawPage called often after selecting text
Re: PDFView drawPage called often after selecting text
- Subject: Re: PDFView drawPage called often after selecting text
- From: Kyle Sluder <email@hidden>
- Date: Mon, 07 Jan 2013 08:52:38 -0800
On Jan 7, 2013, at 2:48 AM, Martin Hewitson <email@hidden> wrote:
> Actually, at the risk of having a conversation with myself, I've narrowed the issue down to the actions I'm taking within my override of -drawPage:. Essentially what I'm aiming at is having a focus ring on the PDFView. I do this in my PDFView subclass:
>
> - (void)drawPage:(PDFPage *)page {
> [super drawPage:page];
> // focussed?
> if ([[self window] firstResponder] == self && [NSApp isActive]) {
> [[self superview] lockFocus];
> NSRect fr = [self frame];
> NSSetFocusRingStyle(NSFocusRingOnly);
> [[NSBezierPath bezierPathWithRect:fr] fill];
> [[self superview] unlockFocus];
> }
> }
This sounds extremely iffy to me. You're dirtying regions of your window that overlap other views in the middle of a recursive -drawRect:. I'm surprised this doesn't crash or spin infinitely.
>
> Is there perhaps a better way I can achieve this focus ring without triggering this (recursive?) -drawPage: behaviour?
Why not use the modern API, -noteFocusRingMaskChanged and -drawFocusRingMask?
--Kyle Sluder
_______________________________________________
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