Swift ui – So ändern Sie die Größe des Swift-Standardmenüs und seine Position
Posted: 16 Jan 2025, 08:20
So sieht das Menü derzeit aus.

Wie Sie sehen können, klicke ich auf das zweite Menü, aber es befindet sich über dem Textfeld.
Was ich will, ist

Wie Sie sehen können, klicke ich auf das zweite Menü, aber es befindet sich über dem Textfeld.
Was ich will, ist
- Das Menü wird unten angezeigt Textfeld (Name 1)
Die Breite des Menüs sollte mit der des Textfelds übereinstimmen
Code: Select all
import SwiftUI
struct DropdownTextField: View {
@State private var showDropdown = false
@FocusState private var isFocused: Bool
@Binding var selectedOption: String
let label: String
let options: [String]
let optionToLabel: (String) -> String
var body: some View {
VStack(alignment: .leading) {
Text(label)
HStack {
Menu {
ForEach(options, id: \.self) { option in
Button(action: {
selectedOption = option
}) {
Text(option)
}
.frame(maxWidth: .infinity, alignment: .leading)
}
} label: {
Text(selectedOption).frame(maxWidth: .infinity, alignment: .leading)
}
}
.frame(maxWidth: .infinity, alignment: .leading)
.padding(10) }
.frame(maxWidth: .infinity, alignment: .leading)
}
}
#Preview {
let options = ["Name 1", "Name 2", "Name 3"]
@State var selectedOption = options[0]
@FocusState var isFocused: Bool
DropdownTextField(selectedOption: $selectedOption, label: "Select an option", options: options, optionToLabel: {$0})
DropdownTextField(selectedOption: $selectedOption, label: "Select an option", options: options, optionToLabel: {$0})
}