【发布时间】:2022-03-22 17:12:48
【问题描述】:
我正在尝试在出现 SwiftUI 视图时执行新的 iOS 15.0 .focused() 视图修改器:
import SwiftUI
struct MainView: View {
@State var subViewIsDisplayed = false
var body: some View {
VStack {
Spacer()
Button(action: { subViewIsDisplayed.toggle() }) {
Text("Trigger SubView")
}
Spacer()
}
.fullScreenCover(isPresented: $subViewIsDisplayed) {
SubView()
}
}
}
struct SubView: View {
@Environment(\.dismiss) var dismiss
@FocusState private var isFocused: Bool
@State var text = ""
var body: some View {
VStack {
HStack {
Spacer()
Button(action: { dismiss() }) {
Image(systemName: "xmark")
}
}
Spacer()
TextField("Please autofocus :(", text: $text)
.focused($isFocused)
Spacer()
}
.onAppear {
self.isFocused = true
}
}
}
struct MainView_Previews: PreviewProvider {
static var previews: some View {
MainView()
}
}
在我的物理设备上,触发“SubView”不会调出键盘(正如我对.focused 所期望的那样)。我做错了什么?
【问题讨论】:
-
模拟器工作怎么样?
-
我认为这是一个错误。我认为上周还有另一个类似的问题,该代码在我的 Macbook 模拟器上运行良好,但我的印象是它不适用于该 OP 的系统。我根本无法让这段代码工作。
-
iOS 15 已发布,但仍然无法使用。就像他们在发布之前甚至没有尝试使用自己的软件一样。