单击 Compose Multiplatform 中的其他位置后如何清除 BasicTextField 的焦点?

How to clear focus of BasicTextField upon clicking somewhere else in Compose Multiplatform?

我在桌面版 Jetbrains Compose Multiplatform 中有一个 BasicTextField。当我单击它时,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)
       }