Я работаю на очень интенсивном приложении с клавиатурой. Обе руки на клавиатуре. Никаких рук на мышь.Выбор первого элемента в popUpContextMenu
Пользователь может через клавиатуру всплывающее контекстное меню, выбрать элемент и, наконец, нажать Enter.
[NSMenu popUpContextMenu]
отображает меню без выделения какого-либо элемента. Пользователь должен будет нажать стрелку вниз один раз, чтобы выделить первый элемент.
Мой друг заметил, что каждый раз, когда вы используете это меню, вам нужно нажимать стрелку вниз, и предложил, чтобы я удалил этот шаг, чтобы первый элемент всегда выделялся при всплывании меню.
Я подозреваю, что это требует угольного взлома?
Как программно выделить первый элемент?
Этот код используется для всплывающего меню.
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];
обновление: Я попытался отправки моего приложения в Arrow_down события сразу после popUpContextMenu, однако событие не выполняется, когда меню отображается. (Событие выполняется после исчезновения меню).
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];