我很难弄清楚如何专注于SwiftUI 2.0和tvOS 14中列表中的特定单元格/行。当我导航至时,我需要能够集中并选择特定记录。一个看法。但是,当焦点切换到列表时,某些随机行会被聚焦。我试过ScrollView和List来创建一个带有Buttons的项目列表,并带有适当的preferredsDefaultFocus。没事。这是一些示例代码:
struct ChannelListView: View {
@Namespace private var namespace
@ObservedObject var viewModel : LiveViewModel
@State var selection = Set<ChannelItem>()
var body: some View {
List(viewModel.channels, selection: $selection){ item in
ScrollViewReader { proxy in
Button(action: {
}){
ChannelItemView(item: item, selectedItem: $viewModel.selectedChannel, onSelected: { id in
})
.padding(.vertical, 2)
}
.buttonStyle(ChannelButtonStyle())
.prefersDefaultFocus(item == viewModel.selectedChannel, in: namespace)
}
}
.focusScope(namespace)
}
}