Swift TVDigitEntryViewController-只能选择第一位数字
我正在SwiftUI中实现Swift TVDigitEntryViewController-只能选择第一位数字,swift,swiftui,tvos,tvuikit,Swift,Swiftui,Tvos,Tvuikit,我正在SwiftUI中实现TVDigitEntryViewController。但是,屏幕呈现正确,尽管选择区域显示数字1-0加上退格,但我只能关注数字1。任何正确的刷卡都会被拒绝,焦点只会停留在#1上 代码如下: import SwiftUI import TVUIKit struct LinkAccountView: UIViewControllerRepresentable { func makeUIViewController(context: Context) ->
TVDigitEntryViewController
。但是,屏幕呈现正确,尽管选择区域显示数字1-0加上退格,但我只能关注数字1
。任何正确的刷卡都会被拒绝,焦点只会停留在#1上
代码如下:
import SwiftUI
import TVUIKit
struct LinkAccountView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewController {
return LinkAccountVC()
}
func updateUIViewController(_ viewController: UIViewController, context: Context) {
}
}
class LinkAccountVC: TVDigitEntryViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.numberOfDigits = 4
self.titleText = "Link Code"
entryCompletionHandler = { (enteredCode) in
print("Code:\(enteredCode)")
}
}
}
更新:在没有SwiftUI的情况下实现是可行的,因此出于某些原因,问题肯定是SwiftUI
以下是一个完整的示例项目,可用于演示该问题:
import SwiftUI
import TVUIKit
struct ContentView: View {
var body: some View {
VStack {
Spacer()
NavigationView {
List {
NavigationLink(destination: LinkAccountView()) {
HStack {
Image(systemName: "link")
.font(.headline)
Text("Link Account")
.font(.headline)
}
}
}
.padding()
.navigationBarTitle("Settings")
}
}
}
}
struct LinkAccountView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> TVDigitEntryViewController {
return LinkAccountVC()
}
func updateUIViewController(_ viewController: TVDigitEntryViewController, context: Context) {
}
}
class LinkAccountVC: TVDigitEntryViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.numberOfDigits = 4
self.titleText = "Link Code"
entryCompletionHandler = { (enteredCode) in
print("Code:\(enteredCode)")
}
}
}
你最终解决了这个问题吗?@JoostvandenAkker-不幸的是没有。我当时用UIKit写这篇文章。考虑到这已经是近一年前的事了,SwiftUI已经更新了,也许已经解决了。然而,如果你现在问这个问题,我想它还没有……你最终解决了这个问题吗?@JoostvandenAkker-不幸的是,没有。我当时用UIKit写这篇文章。考虑到这已经是近一年前的事了,SwiftUI已经更新了,也许已经解决了。然而,如果你现在问这个问题,我想它没有。。。。