TextField 接受有限的字符 SwiftUi

Posted

技术标签:

【中文标题】TextField 接受有限的字符 SwiftUi【英文标题】:TextField accept limited characters SwiftUi 【发布时间】:2020-04-15 10:21:09 【问题描述】:

我有一个文本字段,我正在使用它输入电子邮件,当用户单击发送按钮时,电子邮件将从同一文本字段中删除,并且其占位符更改为输入 pin。因此,当用户输入 pin 时,我想让文本字段限制为最多 6 个字符。这可能吗?如果是,请帮助我,我是 SwiftUI 的新手。

TextField(placeholder, text: $text)

$text 会根据状态电子邮件或 pin 更改

【问题讨论】:

也许这对你有用 -> ***.com/a/58364685/7512091 【参考方案1】:

您可以使用PublisheronReceive 来实现。

import SwiftUI

struct ContentView: View 
    @State var text:String = ""
    var body: some View 
        VStack
            TextField("Enter text", text: $text)
                .onReceive(text.publisher.last())  (output) in
                    if self.text.count>6 //set count as you want
                        self.text = String(self.text.dropLast())
                    
            
        
    

【讨论】:

我遇到了未声明发布者的问题 你不声明某种出版商吗? 我没有声明任何变量,我将整个代码粘贴到 ans 中。 当用户输入更多字符时,它们很快就会显示出来然后被删除,有没有办法防止这种情况发生?

以上是关于TextField 接受有限的字符 SwiftUi的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 在 ForEach 中获取 TextField 数组

SwiftUI TextField 不接受整数/双精度。怎么做?

如何创建只接受数字和单个点的 SwiftUI TextField?

SwiftUI TextField Representable 不增加字体大小

删除第一个字符时,SwiftUI TextField 冻结

是否可以使用 SwiftUI 在 TextField 上设置字符限制?