在qml中使用popup控件时,如例子中的Popup有TextInput在popup的open时可以在此TextInput中输入,即响应键盘事件。但是在其退出此Popup即close之后,其他Item中就无法响应键盘事件。
这是由于出现了focus焦点丢失,因此要在此Item中再次调用forceActiveFocus才能重新获取焦点,获取焦点之后此Item才能重新响应键盘事件,焦点只能聚焦到一个Item中,重复focus只能对最后一个Item的focus生效。
Popup{
id: root
margins: 0
padding: 0
dim: true
modal: true
TextInput {
id: input
width: 320
height: 32
text: qsTr("Text Input")
font.pixelSize: 24
clip: true
}
...
}
Item{
id:root
...
root.forceActiveFocus()
...
}