Qml ComboBox 与 Popup 中的 TextField

Qml ComboBox with TextField in Popup

我创建了一个自定义 ComboBox,它在页脚中使用 ListViewTextField,用于向 ComboBox 动态添加选项。 问题是,一旦弹出窗口失去焦点(因此当 TextField 获得焦点时),弹出窗口就会关闭。 我试图强制弹出窗口保持打开状态,这确实有效,但随后阻止 TextField 获得焦点(我猜是因为一旦调用 open() 弹出窗口就会重新获得焦点)。

ComboBox {
  // ...
  popup: Popup {
    property bool forceOpen: false
    onClosed: {
      if(forceOpen)
        open()
    }

    contentItem: ListView {
      // ...
      footer: TextField {
        onPressed: forceOpen = true
      }
    }
  }
}

我也尝试了 closePolicy 属性 和 Popup 的所有值,但其中 none 有帮助。

我正在使用 Qt5.11forceOpen 解决方案过去适用于 Qt 5.10,但不再适用。

如果您不接受对ComboBox的关注,您的问题应该得到解决:

ComboBox {
  focusPolicy: Qt.NoFocus
  popup: Popup {
    // ... 
  }
}