Как очистить фокус BasicTextField при нажатии в другом месте в Compose Multiplatform?
у меня есть
Я знаю, что это нормальное и преднамеренное поведение. Тем не менее, я хочу, чтобы TextField становился несфокусированным, когда пользователь щелкает где-то еще, независимо от того, является ли он компонуемым с возможностью нажатия или без него.
Как мне этого добиться?
1 ответ
Это один из способов, которым я делал это в прошлом.
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)
}