如何让 Kotlin Compose Desktop 中的 Enter 键移动焦点?

How do you make the Enter key move focus in Kotlin Compose Desktop?

我正在制作一个包含大量文本字段的程序,一旦按下 Enter,就需要转移焦点。它们都设置为单行。 (它应该转到下一个文本字段,一旦按下 Enter)

我使用的是焦点请求器,但在 windows 中发现这不是必需的。删除它,我仍然能够使用选项卡更改焦点。有没有办法使它与 Enter 一起工作?

它开箱即用,因为默认情况下所有文本字段都是可聚焦的。在 Tabbing navigation and keyboard focus.

中阅读有关该主题的更多信息

您可以使用 LocalFocusManager 通过自定义事件移动焦点:

val focusManager = LocalFocusManager.current
Box(
    contentAlignment = Alignment.Center,
    modifier = Modifier
        .fillMaxSize()
        .onKeyEvent {
            if (it.key == Key.Enter && it.type == KeyEventType.KeyDown) {
                focusManager.moveFocus(FocusDirection.Next)
                true
            } else {
                false
            }
        }

) {
    Column(
        modifier = Modifier.padding(50.dp)
    ) {
        for (x in 1..5) {
            val text = remember { mutableStateOf("") }
            OutlinedTextField(
                value = text.value,
                singleLine = true,
                onValueChange = { text.value = it }
            )
            Spacer(modifier = Modifier.height(20.dp))
        }
    }
}