У меня есть простой текстовое поле:Clear TextField в QML на 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). Также я полагаю, что это связано с автозаполнением функции клавиатуры.
Я очищаю ввод текста неправильно?
Мой тест:
- Введите что-то в поле, используя виртуальную клавиатуру с автозаполнения.
- Не для подтверждения ввода, оставляя текущее выбранное слово (подчеркнуты)
- Нажмите кнопку ясно (вызов ClearSearch())
- Обратите внимание, что есть еще подчеркнутый текст в TextField
- Нажмите на поле снова , и увидите, что клавиатура снова отображается, и текстовое поле пуст сейчас
PS Qt 5.5
Обычно 'seekField.text =" "' достаточно, чтобы очистить поле. Вы либо a) не вызываете 'clearSearch' правильно, либо b) существует разница между свойством' text' и ['displayText'] (http://doc.qt.io/qt-5/qml-qtquick-textinput.html# DisplayText-проп). Если во втором случае вы можете просто написать 'searchField.displayText =" "'. – BaCaRoZzo
@BaCaRoZzo, thx для предложения. Я правильно вызываю clearSearch, я тестировал это с помощью отладчика. Конечно, есть разница между текстом и displayText. И displayText - свойство readonly. Этот код отлично работает на настольной платформе. У меня проблема только с виртуальной клавиатурой –
Ах да, мой плохой для собственности. :) Это все еще кажется странным. Никогда не было ясной проблемы. Похоже, что происходит что-то еще. – BaCaRoZzo