!!! julia> a = fill(float(pi), 2)
2-element Array{Float64,1}:
3.141592653589793
3.141592653589793
!!!
我有按钮列表,它以某种方式自动聚焦列表中的第一个按钮(加载视图时)。有什么方法可以使用TVOS
来集中显示该列表中的另一个按钮?
我知道SwiftUI
中有preferredFocusedView
,但我喜欢在UIKit
中这样做。
感谢您的任何建议!
答案 0 :(得分:0)
SwiftUI 2.0
注意:!部分解决方案!!!
以下方法(在Xcode 12b5 / tvOS 14上进行测试)仅在堆栈上有效,并且不适用于List / ScrollView(在任何经过测试的组合中)。
无论如何,对于屏幕上的小按钮集,它都是适用的,因此值得发布。
struct DemoPreferredFocusView: View {
@Namespace var ns
@Environment(\.resetFocus) var resetFocus
@AppStorage("initialButton") var initialButton: Int = 3
var body: some View {
VStack {
ForEach(0..<10, id: \.self) { i in
Button(action: {
print(">> tapped \(i)")
self.initialButton = i
}) {
Text("Button \(i)")
}
.prefersDefaultFocus(i == initialButton, in: ns)
}.focusScope(ns)
}
.onAppear {
DispatchQueue.main.async {
self.resetFocus.callAsFunction(in: ns)
}
}
}
}