SwiftUI:在输入之前将 TextField 大小扩展到字体大小
Posted
技术标签:
【中文标题】SwiftUI:在输入之前将 TextField 大小扩展到字体大小【英文标题】:SwiftUI: Expanding TextField size to font size before input 【发布时间】:2019-08-14 08:06:55 【问题描述】:我在使用 SwiftUI TextField 时遇到问题。光标和文本字段最初的大小非常小,在输入时它会增长到完整大小(在本例中为 .largeTitle)。我已将背景设为黑色,因此您可以看到实际字段发生了什么。有没有办法设置 TextField 的大小,使光标从与文本相同的大小开始?我已经尝试了文档中的所有功能,但没有成功...这是使用 Xcode 11 Beta 5。谢谢!
TextField("", text: input)
.lineLimit(nil) // doesn't seem to work in Xcode 11 Beta 5
.font(.largeTitle)
.foregroundColor(.blue)
.background(Color.black)
【问题讨论】:
【参考方案1】:有一个错误,设置文本字段的样式无效,除非文本字段具有初始内容。让我们希望 beta 6 能解决这个问题。同时,这里有一个适合我的解决方法:
文本字段以一个值开头,但在 .onAppear
闭包中立即重置,因此您实际上看不到它:
struct ContentView: View
@State private var input = "x"
var body: some View
TextField("", text: $input)
.lineLimit(nil) // doesn't seem to work in Xcode 11 Beta 5
.font(.largeTitle)
.foregroundColor(.blue)
.background(Color.black)
.onAppear self.input = ""
【讨论】:
太棒了!我不知道这是一个 beta 错误还是预期的功能。感谢您的帮助,解决方法完美:) Xcode 11 GM 中仍未修复此问题。你有没有找到其他方法来解决这个问题?因为即使这个解决方案适用于第一个输入,如果你回到一个空的 TextField,错误再次出现...... 编辑:刚刚找到解决该问题的方法。在 TextField 占位符中添加空格可防止字段丢失其大小!不幸的是,您提供的修复仍然是必需的 占位符解决方法对我有用,但插入符号大小错误,您是否也找到了解决方法? 我在那里放了一个占位符,但在我输入任何内容之前光标仍然很小。有什么想法吗?以上是关于SwiftUI:在输入之前将 TextField 大小扩展到字体大小的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 如何在 TextField 上设置最大数量?
UIPickerView 作为 SwiftUI 中 TextField() 的输入