kotlin - 选择 Jetpack Compose 中 TextField 的所有文本
问题描述
我在 Jetpack Compose 中使用 TextField 组件。获得焦点时如何选择所有文本?
解决方案
在这种情况下,你应该使用你TextFieldValue
的状态TextField
,当它收到焦点时,你设置selection
使用TextFieldValue
状态。
val state = remember {
mutableStateOf(TextFieldValue(""))
}
TextField(
value = state.value,
onValueChange = { text -> state.value = text },
modifier = Modifier
.onFocusChanged { focusState ->
if (focusState.isFocused) {
val text = state.value.text
state.value = state.value.copy(
selection = TextRange(0, text.length)
)
}
}
)
结果如下:
请注意,根据您的触摸,光标会转到触摸的位置,而不是选择整个文本。您可以尝试弄清楚这是错误还是功能:)
推荐阅读
- echarts - Echarts 在工具提示中显示附加信息
- c++ - C++ - 无法获取前缀 uint16_t 标头
- excel - 多个workbook_change事件VBA
- json - 在 Amazon Keyspaces 上启用 Json 插入
- vue.js - Gridsome 页面路由现在是小写的
- solr - Apache solr search 文本搜索(在多个字段中)
- thymeleaf - 在这种情况下禁止访问请求参数
- r - 每行合并/连接 data.tables
- python-3.x - 使用 python docx 模块编辑 MS word 文件并将其保存回来时更改某些字符编码
- c++ - 读取 UTF-8 文件,使用 SendInput 将内容传递给其他应用程序