在 Android 上清除 QML 中的 TextField

Clear TextField in QML on Android

我有一个简单的文本字段:

TextField {
       id: searchField
       height: Units.dp * 40
       color: Palette.colors["white"]["500"]
       textColor: Palette.colors["white"]["500"]
       placeholderText: qsTr("Search...")

}

我正在尝试按以下方式清除 TextField 输入:

function clearSearch() {
    Qt.inputMethod.reset()
    Qt.inputMethod.hide()
    searchField.focus = false
    searchField.text = ""
}

Android 功能 clearSearch 似乎不起作用。我看到文本输入仍然包含最后输入的文本(我猜它是一个 displayText)。另外我想这是由于键盘的自动完成功能。

我是否以错误的方式清除文本输入?

我的测试用例:

  1. 使用具有自动完成功能的虚拟键盘在字段中输入内容。
  2. 不确认输入,选择当前单词(带下划线)
  3. 点击清除按钮(调用 clearSearch())
  4. 请注意,TextField 中仍有带下划线的文本
  5. 再次点击一个字段,再次看到键盘显示,文本字段现在为空

P.S。 Qt 5.5

您可以调用 Qt.inputMethod.reset() 重置输入法中任何部分未提交的文本输入。