키를 누를 때 부울을 False에서 True로 전환 하시겠습니까?
키보드의 키를 누를 때 부울 변수가 전환되도록하고 싶습니다.
예를 들어,
activateE := Block[{}, edown = True;];
SetOptions[EvaluationNotebook[], NotebookEventActions -> {{"KeyDown", "e"} :> activateE}]
다음을 통해 키 누름을 모니터링하십시오.
edown = False;
Dynamic[edown]
e
이제 키 가 노트북에 대한 텍스트 입력 생성을 중지하는 동안 안타깝게도 키를 누르는 빈도에 관계없이 Dynamic
항상이 계속 표시 False
됩니다 e
. 내가 뭘 잘못하고 있는지, 아니면 제대로하는 방법?
편집하다:
또는 CurrentValue
기능을 시도하고 있습니다. 예를 들면
Dynamic[CurrentValue["ModifierKeys"]]
예를 들어 Ctrl
키를 눌렀을 때 제대로 표시됩니다 . 하지만 내가 시도하면
Dynamic[CurrentValue["EventKey"]]
None
어떤 키를 눌러도 출력이 됩니다. CurrentValue
문자와 같은 일반 키 누름을 등록 하는 옵션이 e
있습니까?
EDIT2 :
작동하는 것처럼 보이는 것은
EventHandler[InputField[], {"KeyDown", "e"} :> activateE]
하지만 InputField를 처음 클릭하여 초점을 맞추는 경우에만 가능합니다.
답변
4 kglr
NotebookEventActions
옵션과 함께 사용하면 PassEventsUp -> True
버전 11.3 (Windows 10-64 비트)에서 원하는 동작이 제공됩니다.
ClearAll[activateE]
activateE:= Block[{}, edown = True;];
SetOptions[EvaluationNotebook[],
NotebookEventActions -> {{"KeyDown", "e"} :> activateE, PassEventsUp -> True}]
변형 : 키 를 누를 때 False
와 전환 :True
e
$Version
"Microsoft Windows (64 비트) 용 11.3.0 (2018 년 3 월 7 일)"