Je travaille sur une application très intensive pour le clavier. Les deux mains sur le clavier. Pas de mains sur la souris.Sélection du premier élément dans un popUpContextMenu
Un utilisateur peut, via le clavier, faire apparaître un menu contextuel, sélectionner un élément et appuyer sur Entrée.
[NSMenu popUpContextMenu]
affiche le menu sans surligner aucun élément. L'utilisateur devra appuyer une fois sur arrow_down pour mettre en évidence le premier élément.
Un de mes amis a observé que vous devez appuyer sur la touche fléchée chaque fois que vous utilisez ce menu et a suggéré que je supprime cette étape, de sorte que le premier élément est toujours mis en surbrillance lorsque le menu est en popup. Je suppose qu'il nécessite un piratage de carbone?
Comment mettre en surbrillance par programme le premier élément?
J'utilise ce code pour faire apparaître un menu.
NSEvent* event = [NSEvent otherEventWithType:NSApplicationDefined
location:location
modifierFlags:0
timestamp:0
windowNumber:[[self window] windowNumber]
context:[[self window] graphicsContext]
subtype:100
data1:0
data2:0
];
[NSMenu popUpContextMenu:menu withEvent:event forView:self];
update: J'ai essayé d'envoyer mon application un événement Arrow_down juste après la popUpContextMenu, mais l'événement n'est pas exécutée lorsque le menu est visible. (L'événement est exécuté après que le menu est parti).
unichar code = NSDownArrowFunctionKey;
NSString* chars = [NSString stringWithFormat: @"%C", code];
NSEvent* event = [NSEvent keyEventWithType:NSKeyDown location:location modifierFlags:0 timestamp:0 windowNumber:[[self window] windowNumber] context:[[self window] graphicsContext] characters:chars charactersIgnoringModifiers:chars isARepeat:NO keyCode:code];
[NSApp sendEvent:event];