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 }
    )
}
Другие вопросы по тегам