首页 > 解决方案 > 在您输入空格之前,TextArea 不会接收文本

问题描述

Qt 5.12.3 / QtQuick 2.12 / QtQuick.Controls 2.12

Android 上的 Qml 组件 TextArea 行为(带有 MIUI 的 Android 8)。当我在 TextArea 中输入文本时,TextArea qml 在输入空格之前不会收到带有输入文本的 onTextChanged 事件。是否可以修复或解决方法?

TextArea {
    onTextChanged: console.log("onTextChanged:", text)
}

控制台有这些消息:

W MyApp: {default} [W] [28.08.19 17:38:54.738] Input method out of sync "" 12

对于 Qt 5.13.0 / QtQuick 2.13 / QtQuick.Controls 2.13,行为是相同的

标签: androidqtqml

解决方案


这对我有用:

TextArea {
    inputMethodHints: Qt.ImhSensitiveData
    onTextChanged: {
        console.log("onTextChanged:", text)
    }
}

// with preText in keyboard

TextArea {
    onTextChanged: {
        deselect()
        console.log("onTextChanged:", text)
    }
}

使用 clear() 删除显示中的文本。


推荐阅读