如何将焦点设置到 ListView 委托内的 TextField?
Posted
技术标签:
【中文标题】如何将焦点设置到 ListView 委托内的 TextField?【英文标题】:How to set focus to TextField inside ListView delegate? 【发布时间】:2019-11-24 00:41:40 【问题描述】:我有 ListView,里面有一些文本输入字段:
Window
visible: true
ListModel
id: textModel
ListElement
text: "Bill Smith"
ListElement
text: "John Brown"
ListElement
text: "Sam Wise"
ListView
width: 180; height: 200
focus: true
model: textModel
delegate: RowLayout
id: layout
Label
text: model.text
TextField
text: model.text
我想将输入焦点设置到列表中的第一个 TextField。我怎样才能做到这一点?如果我在 ListView 中添加 focus: true
则无济于事。
【问题讨论】:
【参考方案1】:您必须使用 ListView.isCurrentItem
属性激活 TextField 的焦点:
ListView
id: view
width: 180; height: 200
focus: true
model: textModel
delegate: RowLayout
id: layout
Label
text: model.text
TextField
focus: layout.ListView.isCurrentItem
text: model.text
// Component.onCompleted: view.currentIndex = 0
【讨论】:
谢谢,这个解决方案有效。我尝试其他解决方案: focus: model.index == 0 并且它不起作用。我不明白为什么。以上是关于如何将焦点设置到 ListView 委托内的 TextField?的主要内容,如果未能解决你的问题,请参考以下文章
ListView 内的 EditText 不会保持焦点[重复]
单击ListViewItem时如何将焦点设置在TextBox上?