Мне нужно знать, удерживает ли пользователь клавишу ctrl при нажатии кнопки. так как это кнопка, а не цифра, я не могу использовать "selectionType" на рисунке и т.д. Есть ли простой способ сделать это?
Спасибо!
Ответ 1
Как насчет этого:
modifiers = get(gcf,'currentModifier'); %(Use an actual figure number if known)
ctrlIsPressed = ismember('control',modifiers);
Класс figure имеет ряд полезных свойств Current*, которые полезны при обработке обратных вызовов. Вот как получить текущую позицию мыши, выбранный графический объект и (как здесь) нажатые клавиши. К ним относятся: CurrentAxes, CurrentCharacter, CurrentKey, CurrentModifier, CurrentObject и CurrentPosition.
Ответ 2
Нажатие клавиши эвакуации повторно инициализирует CurrentModifier. Мое решение до сих пор заключалось в том, чтобы проинструктировать моих пользователей (прямо в графическом интерфейсе), чтобы нажать клавишу эвакуации, чтобы вернуться к поведению по умолчанию.
В целом поведение Matlab CurrentModifier похоже на то, что ключ-модификатор "прилипает" до тех пор, пока не произойдет одно из следующих действий: нажат другой модификатор, выбрано другое окно или нажата клавиша эвакуации.