Я использую ngx-material-keyboard в моем приложении Angular.
Я заметил, что клавиша Shift ведет себя странно, когда нажимается / нажимается:
- ожидается: после изменения строчных букв в верхний регистр, при нажатии одной из этих заглавных букв клавиатура автоматически переключается обратно в нижний регистр
- наблюдается: после изменения нижнегорегистр букв в верхнем регистре, при нажатии на одну из этих заглавных букв клавиатура остается в верхнем регистре (клавиша Shift ведет себя так же, как заглавная клавиша )
Мое ожидание исходит от экранных клавиатур на моем телефоне (например, в приложениях чата).Является ли мое ожидание действительным и оправдано ли мое раздражение ?
Воспроизведите его здесь самостоятельно: демоверсия ngx-material-keyboard
Насколько я вижу, никто не создавал проблему , что я нахожу странным, поэтому сначала спрашиваю здесь (и, похоже, никто не обращался к ней и в SO).
Кто-нибудь знает как это исправить ?(Я разветвлял репо, поэтому я могу изменить код , но, к сожалению, я не могу понять, как происходит переключение буквенных символов и как заставить обработчик переключения переключаться в верхний регистр только одним щелчком мышивместо того, чтобы навсегда.)
Вот части кода, которые я считаю интересными:
В keyboard.compontents.ts:
public onShiftClick(): void {
this.modifier = MatKeyboardComponent.invertShiftModifier(this.modifier);
this.shiftClick.next();
}
private static invertShiftModifier(modifier: KeyboardModifier): KeyboardModifier {
switch (modifier) {
case KeyboardModifier.None:
return KeyboardModifier.Shift;
case KeyboardModifier.Alt:
return KeyboardModifier.ShiftAlt;
case KeyboardModifier.ShiftAlt:
return KeyboardModifier.Alt;
case KeyboardModifier.Shift:
return KeyboardModifier.None;
}
}
И в компоненте клавиатуры-клавиши.ts:
public onClick(event: MouseEvent): void {
[...]
// TODO: if current modifier is KeyboardModifier.Shift
// do the invert
}