Re: Highlighting Drag Target
Re: Highlighting Drag Target
- Subject: Re: Highlighting Drag Target
- From: Clark Cox <email@hidden>
- Date: Mon, 18 Oct 2004 08:53:35 -0400
On Sun, 17 Oct 2004 22:35:26 -0500, Dennis Falling <email@hidden> wrote:
>
Hi all,
>
>
I'm using the following code to highlight an NSImageView subclass when
>
files are dragged across it:
>
>
- (void)drawRect:(NSRect)rect
>
{
>
NSBezierPath *path = [NSBezierPath bezierPathWithRect:[self frame]];
>
if (highlighted)
>
{
>
[NSGraphicsContext saveGraphicsState];
>
NSSetFocusRingStyle(NSFocusRingOnly);
>
[path fill];
>
}
>
else
>
{
>
[path closePath];
>
[NSGraphicsContext restoreGraphicsState];
>
}
>
[super drawRect:rect];
>
}
>
>
I originally was subclassing NSView and using the same method (minus
>
the call to super's drawRect) and it was working fine. But when I
>
changed over to using the NSImageView, I had to add this call in to
>
keep the image and border of the view from disappearing.
>
>
The problem I'm having is that the bezier path is being draw for
>
everything in the frame..the border, the image, etc. How can I set it
>
to just draw it around the inside of the border? In case I'm not being
>
clear, here's an image of the problem I'm having:
>
<http://www.csc.tntech.edu/~dsfallin/FasTarIssue.jpg>
How about something more like:
- (void)drawRect:(NSRect)rect
{
if (highlighted)
{
[NSGraphicsContext saveGraphicsState];
NSSetFocusRingStyle(NSFocusRingOnly);
[[NSBezierPath bezierPathWithRect:[self frame]] fill];
[NSGraphicsContext restoreGraphicsState];
}
[super drawRect:rect];
}
--
Clark S. Cox III
email@hidden
http://www.livejournal.com/users/clarkcox3/
http://homepage.mac.com/clarkcox3/
_______________________________________________
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