No, that's not the problem. The problem is that some combinations simply don't work. For instance, just as a random example, AppKit does not match "option+," or "shift+`". (Haven't tried adding command but offhand I don't have any reason to think that this would fix it.)

My app supports arbitrary, user-defined hotkeys, so I am finding a lot of edge cases.

Also, AppKit has other problems where it will send hotkeys to the first responder instead of to the menubar directly if they don't contain the command key. This didn't work for me either, so I already needed a workaround in -sendEvent:. At the end of the day it was much simpler for me to match hotkeys myself instead of putting in kludge after kludge to make the AppKit hotkey matching work as I needed it to.

I have radars filed on some of these behaviors but I need it to work on today's OS, warts and all :)


Benjamin Stiglitz wrote:
If I understand well, your trying to catch event that match a menu item shortcut minus the shift key. Isn't it possible to override -[NSApp sendEvent:] as you did, but instead of taking care of the event yourself, create a new event that match the menu item and then call super with this new event ?

- (void)sendEvent:(NSEvent *)theEvent {
    if ([theEvent isAnHotkeyEvent]) {
        theEvent = [NSEvent eventWithTheKeystrokeAppKitWant];
    }
    [super sendEvent:theEvent];
}


I really don't know if it works, but it worth the try.

That’s a pretty common way to do it, and avoids the need to duplicate the actual method dispatch. Works great.

-Ben
_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to