Code: Select all
HStack
{
TextField("", text: self.$textFieldUserInput, axis: .vertical).lineLimit(1...).focused(self.$textFieldIsFocused)
Button(""){}.buttonStyle(.borderedProminent)
Spacer()
}

Wenn ich das möchte:

Ich habe eine gute Lösung gefunden, die das TextField ersetzt, wenn es nicht fokussiert ist, durch eine Text-Komponente:
Code: Select all
ZStack(alignment: .leading)
{
TextField("", text: self.$textFieldUserInput, axis: .vertical)
.lineLimit(1...)
.focused(self.$textFieldIsFocused)
.opacity(self.textFieldIsFocused ? 1 : 0)
if (!self.textFieldIsFocused)
{
HStack
{
Text(self.textFieldUserInput)
.onTapGesture
{
self.textFieldIsFocused = true
}
Button(""){}.buttonStyle(.borderedProminent)
}
}
}
Bearbeiten: Ich habe die meisten Lösungen ausprobiert (SwiftUI TextField benötigt die maximale Breite und wie passt man die Breite eines TextFields dynamisch an seinen Inhalt an?), was die Verwendung von „fixedSize“ beinhaltet, aber das funktioniert nicht, wenn Sie mehrzeiligen Text möchten und axis: .vertical im TextField verwenden müssen.
Ich frage mich, ob es einen besseren Weg gibt, dies zu erreichen, indem man irgendwie ein TextField in der SwiftUI-Größe so anpasst, dass es passt, sodass Sie eine Schaltfläche direkt daneben platzieren können es?
Mobile version