【问题标题】:SwiftUI: Expanding TextField size to font size before inputSwiftUI:在输入之前将 TextField 大小扩展到字体大小
【发布时间】: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)

【问题讨论】:

    标签: swift swiftui


    【解决方案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 占位符中添加空格可防止字段丢失其大小!不幸的是,您提供的修复仍然是必需的
    • 占位符解决方法对我有用,但插入符号大小错误,您是否也找到了解决方法?
    • 我在那里放了一个占位符,但在我输入任何内容之前光标仍然很小。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 2012-04-25
    • 2011-01-09
    • 2017-08-12
    • 2016-06-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多