> 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

Reply via email to