In the last week-end, while I was working on my side project, I discovered a problem: on iOS the keyboard stay opened after it’s opened due to a click in an input text. The obvious solution that I thought is:
Page {
MouseArea {
anchors.fill: parent
enabled: Qt.inputMethod.visible
onClicked: Qt.inputMethod.hide()
}
//.... input fields
}
Thus in this way, clicking/tapping on the screen, the keyboard should disappear. In my case it doesn’t work because the input fields are in a ScrollView (and if you move the MouseArea in the ScrollView the view doesn’t scroll).
My solution:
Page {
MouseArea {
anchors.fill: parent
enabled: Qt.inputMethod.visible
onClicked: Qt.inputMethod.hide()
propagateComposedEvents: true
z: 10
}
ScrollView {
id: scrollView
anchors.fill: parent
anchors.bottomMargin: dp(60)
clip: true
contentWidth: -1
ColumnLayout {
id: colView
//.... input fields
}
The tips&trick is set a Z value to the MouseArea and propagates the mouse event to the object in the bottom layers.