Re: Why does menu item with shift-delete not work?
Re: Why does menu item with shift-delete not work?
- Subject: Re: Why does menu item with shift-delete not work?
- From: Andy Lee <email@hidden>
- Date: Fri, 17 Jan 2014 14:34:08 -0500
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 <email@hidden> 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 (email@hidden)
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:
This email sent to email@hidden