Box не фиксирует ключевые события в Compose Desktop
Ключи печатаются, когда
TextField
сосредоточен, но не тогда, когда
Box
сам, если сосредоточен.
Box(
modifier = Modifier.onKeyEvent {
println(it.key)
false
}.fillMaxSize().focusable()
) {
val fieldValue = remember { mutableStateOf(TextFieldValue("")) }
TextField(
value = fieldValue.value,
onValueChange = { fieldValue.value = it }
)
}
1 ответ
Вдохновленный этим ответом, я меняю код.
Когда вы нажимаете на, вы убираете фокус с
TextField
но вы не отдаете это
Box
. Это нужно делать вручную.
val focusRequester = FocusRequester()
Box(
modifier = Modifier.onKeyEvent {
println(it.key)
false
}.fillMaxSize()
.focusRequester(focusRequester)
.focusable()
.clickable (
interactionSource = remember { MutableInteractionSource() },
indication = null // To disable the ripple effect
) {
focusRequester.requestFocus()
}
) {
val fieldValue = remember { mutableStateOf(TextFieldValue("")) }
TextField(
value = fieldValue.value,
onValueChange = { fieldValue.value = it }
)
}