在Android上的QML中清除TextField

时间:2016-11-20 20:32:37

标签: android qt qml qtquick2 qtquickcontrols

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

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. 中仍有带下划线的文本
  6. 再次点击某个字段,再次看到该键盘显示,文本字段现在为空
  7. P.S。 Qt 5.5

1 个答案:

答案 0 :(得分:1)

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