Thank you very much for taking the time to build a test and make a reply. I don't (in general) actually have custom subviews. The clicks were tested (among other places) in parts of the NSWindow to which I have not explicitly added content, as well as standard classes like NSBox. I was suggesting I might have to make subclassed NSViews to pick up rightMouseDown: events. But is it even knowable what NSViews lay between a click and a window? Most obviously there is the [NSWindow contentView], but some other view types may contain their own subviews which could receive events.
I build the 32-bit plug-in with XCode 9.2, link with SDK 10.13 and deployment target 10.7. So certainly it's linked on macOS 10.7 or later. But I rather suspect that the "linked on" which matters is the host app, which otool shows (for the most recent) as cmd LC_VERSION_MIN_MACOSX version 10.6 sdk n/a I suspect that this app may not pass whatever the " linked on macOS 10.7 or later" test is looking for, and my plug-in cannot change the behaviour of Cocoa classes it inherits from the app. Rather than chase down all the NSViews for which I might need to create subclasses, I think the alternative of using rightMouseUp: seems to work well enough on both 16 and 32 bits. So, I'm happy to consider this closed. Thanks again. On Mon, 21 Oct 2019 at 20:17, Richard Charles <rcharles...@gmail.com> wrote: > > On Oct 20, 2019, at 8:27 AM, Aandi Inston <aa...@quite.com> wrote: > > > > We have a workaround, which is to move our right click processing onto > MouseUp, which is passed up the responder chain as we wish in both 32 and > 64 bit systems. But I remain curious as to what the docs are actually > telling me. > > From NSResponder documentation. > > "Prior to OS X v10.7, NSView did not pass unhandled rightMouseDown(with:) > events up the responder chain. In macOS 10.7 and later, NSView passes > rightMouseDown(with:) events up the responder chain if AppKit doesn’t find > an associated context menu to display for the view. To avoid binary > compatibility issues, this new behavior is enabled only for applications > linked on macOS 10.7 or later." > > Sounds straight forward to me. Perhaps you need to read it again. > > I created a new app with Xcode 9.2 and linked to 10.13. Created a custom > view and custom window with rightMouseDown logging. Built the app for 32 > bit and 64 bit. An unhandled rightMouseDown is passed promptly from view to > window in both cases. > > Also the NSView documentation states. > > "Because NSView changes the default behavior of the rightMouseDown: > method, you should call super when implementing that method in your custom > subclasses." > > Are you doing this? > > --Richard Charles > > _______________________________________________ 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