我有一个BasicTextField
用于桌面的 Jetbrains Compose Multiplatform。当我单击它时,TextField 获得焦点并变为可编辑。但是,当我单击应用程序中的其他位置时,焦点不会丢失,并且该字段仍然可以编辑,就像我刚刚单击它一样。
我知道这种行为是正常的和有意的。尽管如此,当用户点击其他地方时,我希望 TextField 变得不集中,无论它是可点击的还是不可点击的组合。
我如何实现这一目标?
我有一个BasicTextField
用于桌面的 Jetbrains Compose Multiplatform。当我单击它时,TextField 获得焦点并变为可编辑。但是,当我单击应用程序中的其他位置时,焦点不会丢失,并且该字段仍然可以编辑,就像我刚刚单击它一样。
我知道这种行为是正常的和有意的。尽管如此,当用户点击其他地方时,我希望 TextField 变得不集中,无论它是可点击的还是不可点击的组合。
我如何实现这一目标?
这是我过去做过的一种方式。
val keyboardController = LocalSoftwareKeyboardController.current
val focusManager = LocalFocusManager.current
val interactionSource = remember { MutableInteractionSource() }
然后我让我的父布局可点击。
Box(modifier = Modifier
.clickable(
interactionSource = interactionSource,
indication = null // this gets rid of the ripple effect
) {
keyboardController?.hide()
focusManager.clearFocus(true)
}