Re: A cursor bug in DragItemAround example
Re: A cursor bug in DragItemAround example
- Subject: Re: A cursor bug in DragItemAround example
- From: an0 <email@hidden>
- Date: Sat, 26 Apr 2008 23:47:11 +0800
> Does this sample application still use cursorRects/NSTrackingRects?
> Leopard introduced a new mechanism -- NSTrackingArea and cursorUpdate
> events -- which doesn't have some of the problems that the old
> mechanism supposedly had.
>
> With NSTrackingArea and cursorUpdate you should be able to get
> complete, consistent control of the cursor inside the visible portion
> of your view (even when returning from the outside), and it's fairly
> easy to use. [NSScrollView setDocumentCursor:] will still be necessary
> to control the part of the scroll view outside the visible portion of
> your view, and control entirely outside the scroll view (or window)
> will be harder to enforce, because other views (and other windows) may
> have their own ideas.
Thanks. I've tried NSTrackingArea, and it seems a clearer concept and
easier to use. However, there are still two problems I can't fix:
1. Setting cursor in initWithFrame: and awakeFromNib does not have
effect. So I can't set the initial cursor.
2. Setting cursor together with tracking areas renders the cursor
setting ineffective. I found this from my mouseUp action. With the
code handling tracking areas, [[NSCursor openHandCursor] set] did not
give me an openHandCursor, but an arrowCursor.
-(void)mouseUp:(NSEvent *)event
{
dragging=NO;
[self removeTrackingArea:trackingRect];
self.trackingRect = [[[NSTrackingArea alloc] initWithRect:[self
calculatedItemBounds]
options:NSTrackingCursorUpdate | NSTrackingActiveInActiveApp
owner:self
userInfo:nil] autorelease];
[self addTrackingArea:trackingRect];
[[NSCursor openHandCursor] set];
}
_______________________________________________
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