I think the key event is getting stolen by the first responder of whatever your 
key window is at the time.  I did a quick test and found the menu item did not 
get invoked when a text view was selected but *did* get invoked when I removed 
the text view.

I suspect a more precise technical answer lies in the docs on keyboard event 
handling.  See "Cocoa Event Handling Guide" => "The Path of Key Events", in 
particular the part about key equivalents:

<https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html#//apple_ref/doc/uid/10000060i-CH3-SW10>

A workaround would be to subclass NSApplication and override keyDown: to detect 
Shift-Delete.  Offhand, I'd think you could do something like

- (void)keyDown:(NSEvent *)theEvent
{
    if ([self isShiftDeleteEvent:theEvent]
        && [[NSApp mainMenu performKeyEquivalent:theEvent])
    {
        return;
    }

    [super keyDown:theEvent];
}

But maybe someone has a better idea?

--Andy

On Jan 17, 2014, at 12:45 PM, Steve Mills <smi...@makemusic.com> wrote:

> We have a menu item whose key equiv is shift-delete (backspace, not forward 
> delete). Typing that key does not even call the menu's performKeyEquivalent 
> method. How can we get this to work like it should?
> 
> BTW, I've already noticed that when you set the key equiv in IB, it sets it 
> to 8 (Unicode backspace), but when you type that key, the character in the 
> event is 127 (Unicode delete). Is that the problem? The OS just doesn't know 
> how to map it correctly? I had to remap 127 to 8 in our NSMenu subclass' 
> performKeyEquivalent method in order to get command-delete to work.
> 
> I've also tried programmatically changing the item's key equiv from 0x08 to 
> 0x7f after installing the menu and that didn't help.
> 
> --
> Steve Mills



_______________________________________________

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