> On 10. Aug 2019, at 23:21, Rob Petrovec via Cocoa-dev > <cocoa-dev@lists.apple.com> wrote: > >> On Aug 10, 2019, at 3:12 PM, Kurt Bigler <kkbli...@breathsense.com> wrote: >> >> On 8/10/19 10:03:00 AM, Rob Petrovec wrote: >>>> On Aug 10, 2019, at 12:24 AM, Kurt Bigler via Cocoa-dev >>>> <cocoa-dev@lists.apple.com> wrote: >>>> >>>> The NSView subclasses involved are receiving drawRect: messages but are >>>> not receiving mouseDown:. >> >>> You need to implement NSView -hitTest: to get mouseDown events. >> >> I have 5 working Cocoa apps, and none implement hitTest. It is apparently >> needed for special circumstances, per the docs "to have a view object hide >> mouse-down events from its subviews”. > The OP said NSView subclasses. Not NSControl. So he needs to > implement hitTest to get mouseDown events. If you read the sentence before > the line you quoted: "This method is used primarily by an NSWindow object to > determine which view should receive a mouse-down event.”. NSView returns nil > from hitTest by default, so raw NSViews don’t get mouseDown events. > > —Rob
Have you actually tried creating a custom NSView, because this is simply not the behavior I've observed in the last 10+ years as a Cocoa UI programmer. The only reason to override hitTest is if you want a view through which clicks pass through under certain circumstances (i.e., it has a non-rectangular shape or a built-in shadow through which clicks should pass to underlying views) or if you want to handle clicks that are actually destined for one of your sub views. A plain NSView will do all the correct hit-testing for subviews and itself by default. Cheers, -- Uli Kusterer "The Witnesses of TeachText are everywhere..." http://www.zathras.de _______________________________________________ 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