我正在尝试为 TextField 中的最大字符数设置一个限制。这是我尝试过的:
var text by remember { mutableStateOf("") }
val maxLength = 40
TextField(
value = text,
onValueChange = {
text = it.take(maxLength)
}
)
这是问题所在:
- 当我超过限制时,整个文本突然被清除。
- 这只发生一次,即当我重新输入并超出限制时它就停在那里(这是所需的行为)
- 40 在这里似乎是一个神奇的数字,因为对于 maxLength = 39 或更低,一切正常。当我将限制设置为 40 或更高时,我看到了这种奇怪的行为。(这个幻数似乎并不取决于文本字段的宽度,因为我尝试了纵向和横向模式,结果是一样的)
如何摆脱这种行为?为 TextField 文本设置最大长度的正确方法是什么?