On Jan 7, 2013, at 2:48 AM, Martin Hewitson <martin.hewit...@aei.mpg.de> 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 (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