1

我有一个BasicTextField用于桌面的 Jetbrains Compose Multiplatform。当我单击它时,TextField 获得焦点并变为可编辑。但是,当我单击应用程序中的其他位置时,焦点不会丢失,并且该字段仍然可以编辑,就像我刚刚单击它一样。

我知道这种行为是正常的和有意的。尽管如此,当用户点击其他地方时,我希望 TextField 变得不集中,无论它是可点击的还是不可点击的组合。

我如何实现这一目标?

4

1 回答 1

0

这是我过去做过的一种方式。

 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)
       }
于 2021-12-20T09:45:31.497 回答