От the documentation:
В долгосрочной перспективе, это имеет смысл, чтобы помочь отслеживать ключевые комбинации и пару других распространенных сценариев. Если у вас есть какая-то особая проблема, вы думаете, что эта библиотека может обращаться более непосредственно, пожалуйста, опишите ее как SSCCE в проблеме. Пожалуйста, не предлагайте решение. Просто опишите сценарий. Как только становится понятнее, что делают люди, настало время добавить поддержку этих случаев согласованным образом.
Таким образом, по крайней мере, это означает, что оно не поддерживается прямо сейчас. Я не совсем уверен, означает ли это также, что вы должны открыть проблему, чтобы поддержать это позднее дополнение или нет.
Теперь ответ Чада выглядит хорошим временным решением для меня. Это выглядит еще лучше с предложением swelet отслеживать только несколько клавиш-модификаторов. Обратите внимание, что если вы примете такой подход, вам не нужно полагаться на любые List
или Set
, но вместо этого вы можете записать небольшую запись с 4 булевыми.
Наконец, если вы хотите по каким-либо причинам отследить все ключи (если, например, вы хотели бы, чтобы пользователь мог связать [F1] с некоторыми действиями, то с точки зрения производительности было бы целесообразно использовать более эффективные представление множеств. Любое подмножество конечного множества, например, может быть определено как одно число, каждый бит является логическим значением отсутствия или наличием одного конкретного элемента. Вы можете делать такие вещи с помощью библиотеки Bitwise.
Вы считали поддерживая список вниз клавиш, используя ['Keyboard.downs' и' Keyboard.ups'] (https://github.com/elm-lang/keyboard/blob/master/src/Keyboard.elm)? Я бы создал образец приложения для вас, но я еще не пришел к соглашению с нарушением изменений в 0,17. – pdoherty926
@ pdoherty926 Да, я действительно d id, и я как бы боюсь, что в конечном итоге прибегнув к этому, я просто думаю, что это неправильно неправильно «налагать» систему на каждое нажатие клавиш в приложениях, которые интенсивно пишут и получат много нажатий клавиш. Как «найти ключ в списке и удалить его» в КАЖДОЙ клавиатуре? Однако я должен сказать, что я не очень-то знаю о том, насколько эффективен такой материал, может быть, это арахис. – swelet
Я думаю, что ваша забота действительно, я просто не знаю альтернативного подхода, используя доступные API. Хотя, чтобы следить за моим первоначальным предложением, вы, вероятно, захотите использовать набор вместо списка. – pdoherty926