On 25/01/2013, at 6:30 AM, Tae Won Ha <qva...@me.com> wrote:

> Hi, guys. I need some help in event handling. I have a custom view embedded 
> in a scroll view which is embedded in a split view. The window has got a 
> toolbar. When I move the window down by dragging the toolbar, very often the 
> -mouseDragged: of my custom view gets invoked. Curiously enough, it does not 
> seem to happen when I drag the window up. My questions:
> 
> - Why?
> - When I NSLog() things, I see that -mouseDown: of the custom view is not 
> invoked. What's going on?
> 
> It's the following file
> 
> https://github.com/qvacua/qmind/blob/master/Qmind/QMMindmapView.m
> 
> from line 706.
> 
> I created a dummy project which has got a dummy -mouseDragged: implementation 
> inside a window with a toolbar. In the dummy project it does not happen at 
> all.
> 
> I'm clueless. Am I missing something quite simple here? Anybody had similar 
> problems?


Yes, I've seen this happen sometimes - I believe it's a bug.

You can mitigate it by examining the event that you get in the mouseDragged: 
method - if I recall correctly there is something different about the event 
that allows you to detect that it's the "wrong" one and ignore it, but I can't 
pinpoint the exact necessaries in my code, sorry.

Another option is to forget about using mouseDragged: in your custom view and 
do everything from mouseDown:, including keeping control and fetching and 
handling events in a loop and do your dragging there. I'm finding that approach 
often simplifies things a lot and it means you can only fetch the events you 
need.


--Graham


_______________________________________________

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