我有一个简单的 SwiftUI 视图,其中有一个嵌入堆栈中的菜单和 TexField。
当键盘出现时,菜单的框架会发生变化,如下面的 GIF 所示。菜单的背景为红色,文本字段的背景为蓝色。
选择菜单后,框架将返回到之前(且正确)的尺寸。
struct ContentView: View {
@State var question = ""
var body: some View {
Spacer()
HStack {
Menu("Options") {
Button("Order Now") {}
Button("Adjust Order") {}
Button("Cancel") {}
}
.background(.red)
TextField("placeholder", text: $question, axis: .vertical)
.background(.blue)
}
.padding()
}
}
Run Code Online (Sandbox Code Playgroud)
我希望菜单保持其框架大小,就像 TextField 保持其键盘前外观大小一样。
如何保持菜单框架的正确尺寸?
小智 1
除了Jatin的答案之外,您还可以定义标签的框架。
我还添加了.ignoresSafeArea(.keyboard)在打开键盘的情况下单击时标签向上移动的信息
struct ContentView: View {
@State var question = ""
var body: some View {
VStack {
Spacer()
HStack {
Menu {
Button("Order Now") {}
Button("Adjust Order") {}
Button("Cancel") {}
} label: {
Text("Options").ignoresSafeArea(.keyboard)
}
.frame(maxHeight:20, alignment: .center)
.background(.red)
TextField("placeholder", text: $question)
.background(.blue)
}
}
.padding()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
660 次 |
| 最近记录: |